瀏覽代碼

Merge branch 'Release2.4' of http://36.129.163.148:10080/gaoshipeng/OTS2_0 into Release2.4

cxs 2 年之前
父節點
當前提交
ec37b0337a
共有 2 個文件被更改,包括 245 次插入245 次删除
  1. 244 244
      OTSIncAReportApp/1-UI/Control_Graph/Controls/OutPIC.cs
  2. 1 1
      OTSIncAReportApp/OTSIncAReportApp.csproj

+ 244 - 244
OTSIncAReportApp/3-ServiceCenter/OutPIC.cs → OTSIncAReportApp/1-UI/Control_Graph/Controls/OutPIC.cs

@@ -1,244 +1,244 @@
-using OTSCommon.Model;
-using OTSIncAReportGraph;
-using OTSIncAReportGraph.Controls;
-using System;
-using System.Collections.Generic;
-using System.Data;
-using System.Drawing;
-using System.Linq;
-using System.Text;
-using System.Threading.Tasks;
-using System.Windows.Forms;
-
-namespace OTSIncAReportApp._3_ServiceCenter
-{
-    class OutPIC
-    {
-        
-        //包含particle的field的列表对象
-        public List<DisplayField> m_list_allDfield = null;
-        public ResultFile resultFile = null;
-        public SaveFileDialog sfd = null;
-        public int type = 0;
-        /// <summary>
-        /// 获取每行图片的位置配合opencv方法使用
-        /// </summary>
-        /// <returns></returns>
-        private List<DataTable> opencv_piclist()
-        {
-            List<DataTable> list_dt_picdata = new List<DataTable>();
-            DataTable picDatat = new DataTable();
-            picDatat.Columns.Add("X", typeof(double));
-            picDatat.Columns.Add("Y", typeof(double));
-            foreach (var f in m_list_allDfield)
-            {
-                DataRow dr = picDatat.NewRow();
-                dr["X"] = f.Rect.X;
-                dr["Y"] = f.Rect.Y;
-                picDatat.Rows.Add(dr);
-            }
-            int y_max = Convert.ToInt32(picDatat.Compute("Max(Y)", "true"));
-            int y_min = Convert.ToInt32(picDatat.Compute("Min(Y)", "true"));
-            DataTable total_dt_X = picDatat.Copy();
-            DataView dv_x = total_dt_X.DefaultView;
-            DataView dv_x_2 = dv_x.ToTable(true, "X").DefaultView;
-            dv_x_2.Sort = "X ASC";
-            total_dt_X = dv_x_2.ToTable();
-
-
-            DataTable total_dt_Y = picDatat.Copy();
-            DataView dv_Y = total_dt_Y.DefaultView;
-            DataView dv_Y_2 = dv_Y.ToTable(true, "Y").DefaultView;
-            dv_Y_2.Sort = "Y ASC";
-            total_dt_Y = dv_Y_2.ToTable();
-
-
-            for (int i = 0; i < total_dt_Y.Rows.Count; i++)
-            {
-                NLog.LogManager.GetCurrentClassLogger().Info("Splice line"+i+1.ToString()+"of"+ total_dt_Y.Rows.Count.ToString()+".....");
-                DataTable data = new DataTable();
-                data.Columns.Add("mat", typeof(Bitmap));
-                data.Columns.Add("X", typeof(double));
-                for (int a = 0; a < total_dt_X.Rows.Count; a++)
-                {
-                    DataRow dr2 = data.NewRow();
-                    Bitmap bitmap = new Bitmap((int)m_list_allDfield[0].Rect.Width, (int)m_list_allDfield[0].Rect.Height);
-                    Graphics g = Graphics.FromImage(bitmap);
-                    g.Clear(Color.White);
-                    g.Dispose();
-                    dr2["mat"] = bitmap;
-                    dr2["X"] = total_dt_X.Rows[a]["X"];
-                    data.Rows.Add(dr2);
-                }
-                foreach (var f in m_list_allDfield)
-                {
-                    if (total_dt_Y.Rows[i]["Y"].ToString() == f.Rect.Y.ToString())
-                    {
-                        for (int c = 0; c < data.Rows.Count; c++)
-                        {
-                            if (data.Rows[c]["X"].ToString() == f.Rect.X.ToString())
-                            {
-                                data.Rows[c]["mat"] = f.OriginalImage;
-                                data.Rows[c]["X"] = f.Rect.X;
-                            }
-                        }
-
-                    }
-                }
-
-
-                DataView dataView1 = data.DefaultView;
-                dataView1.Sort = "X ASC";
-                data = dataView1.ToTable();
-
-
-                list_dt_picdata.Add(data);
-            }
-
-            return list_dt_picdata;
-        }
-        public void opencv_outpic(/*int type*/)
-        {
-            List<DataTable> list_dt_picdata = new List<DataTable>();
-            if (type == (int)Outpic_enum.pic)
-            {
-                list_dt_picdata = opencv_piclist();
-            }
-            else
-                    if (type == (int)Outpic_enum.Render_pic)
-            {
-                list_dt_picdata = opencv_piclist_Render();
-            }
-
-            OpenCvSharp.Mat[] list_mats = new OpenCvSharp.Mat[list_dt_picdata.Count];
-            NLog.LogManager.GetCurrentClassLogger().Info("Organize and splice all pictures......");
-            for (int i = 0; i < list_dt_picdata.Count; i++)
-            {
-                OpenCvSharp.Mat[] mats = new OpenCvSharp.Mat[list_dt_picdata[i].Rows.Count];
-                for (int a = 0; a < list_dt_picdata[i].Rows.Count; a++)
-                {
-                    mats[a] = OpenCvSharp.Extensions.BitmapConverter.ToMat((Bitmap)list_dt_picdata[i].Rows[a]["mat"]);
-                }
-                OpenCvSharp.Mat pano = new OpenCvSharp.Mat();
-                OpenCvSharp.Cv2.HConcat(mats, pano);
-                list_mats[i] = pano;
-                
-            }
-            NLog.LogManager.GetCurrentClassLogger().Info("Picture splicing completed.");
-            NLog.LogManager.GetCurrentClassLogger().Info("Save to disk......");
-            OpenCvSharp.Mat save_pano = new OpenCvSharp.Mat();
-            OpenCvSharp.Cv2.VConcat(list_mats, save_pano);
-            OpenCvSharp.Cv2.ImWrite(sfd.FileName, save_pano);
-            NLog.LogManager.GetCurrentClassLogger().Info("Save complete.");
-        }
-       
-        private List<DataTable> opencv_piclist_Render()
-        {
-            List<DataTable> list_dt_picdata = new List<DataTable>();
-            DataTable picDatat = new DataTable();
-            List<Field> fieldlist = resultFile.List_OTSField;
-            picDatat.Columns.Add("X", typeof(double));
-            picDatat.Columns.Add("Y", typeof(double));
-            foreach (var f in m_list_allDfield)
-            {
-                DataRow dr = picDatat.NewRow();
-                dr["X"] = f.Rect.X;
-                dr["Y"] = f.Rect.Y;
-                picDatat.Rows.Add(dr);
-            }
-            int y_max = Convert.ToInt32(picDatat.Compute("Max(Y)", "true"));
-            int y_min = Convert.ToInt32(picDatat.Compute("Min(Y)", "true"));
-            DataTable total_dt_X = picDatat.Copy();
-            DataView dv_x = total_dt_X.DefaultView;
-            DataView dv_x_2 = dv_x.ToTable(true, "X").DefaultView;
-            dv_x_2.Sort = "X ASC";
-            total_dt_X = dv_x_2.ToTable();
-
-
-            DataTable total_dt_Y = picDatat.Copy();
-            DataView dv_Y = total_dt_Y.DefaultView;
-            DataView dv_Y_2 = dv_Y.ToTable(true, "Y").DefaultView;
-            dv_Y_2.Sort = "Y ASC";
-            total_dt_Y = dv_Y_2.ToTable();
-
-
-            for (int i = 0; i < total_dt_Y.Rows.Count; i++)
-            {
-                NLog.LogManager.GetCurrentClassLogger().Info("Splice line" + i + 1.ToString() + "of" + total_dt_Y.Rows.Count.ToString() + ".....");
-
-                DataTable data = new DataTable();
-                data.Columns.Add("mat", typeof(Bitmap));
-                data.Columns.Add("X", typeof(double));
-                for (int a = 0; a < total_dt_X.Rows.Count; a++)
-                {
-                    DataRow dr2 = data.NewRow();
-                    Bitmap bitmap = new Bitmap((int)m_list_allDfield[0].Rect.Width, (int)m_list_allDfield[0].Rect.Height);
-                    Graphics g = Graphics.FromImage(bitmap);
-                    g.Clear(Color.White);
-                    g.Dispose();
-                    dr2["mat"] = bitmap;
-                    dr2["X"] = total_dt_X.Rows[a]["X"];
-                    data.Rows.Add(dr2);
-                }
-                foreach (var f in m_list_allDfield)
-                {
-                    if (total_dt_Y.Rows[i]["Y"].ToString() == f.Rect.Y.ToString())
-                    {
-                        for (int c = 0; c < data.Rows.Count; c++)
-                        {
-                            if (data.Rows[c]["X"].ToString() == f.Rect.X.ToString())
-                            {
-                                Bitmap image = new Bitmap(f.OriginalImage.Width, f.OriginalImage.Height);
-                                Graphics g2 = Graphics.FromImage(image);
-                                g2.DrawImage(f.OriginalImage, 0, 0, f.OriginalImage.Width, f.OriginalImage.Height);
-                                Graphics graph_2 = Graphics.FromImage(image);
-
-                                for (int a = 0; a < fieldlist.Count; a++)
-                                {
-                                    if (fieldlist[a].FieldID.ToString() == f.FieldID.ToString())
-                                    {
-                                        //先获取该Field中的所有Particle
-                                        List<Particle> list_particle;
-                                        list_particle = fieldlist[a].ParticleList;
-                                        //再循环计算所有的Particle对象
-                                        foreach (Particle particle in list_particle)
-                                        {
-                                            //创建DParticle颗粒
-                                            DisplayParticle dp = new DisplayParticle(particle);
-                                            List<Segment> list_seg;
-                                            list_seg = particle.SegmentList;
-                                            //创建颗粒分布图对应的类对象
-                                            List<DisplaySegment> list_dsegment = new List<DisplaySegment>();
-                                            //再循环取出里面所有的segment
-                                            foreach (Segment seg in list_seg)
-                                            {
-                                                #region 创建DSegment对象,并将STD分析出的化合物颜色保存到DSegment对象中
-
-                                                Point on_p = new Point() { X = seg.Start, Y = seg.Height };
-                                                Point off_p = new Point() { X = seg.Start + seg.Length, Y = seg.Height };
-                                                Pen npen = new Pen(dp.Color);
-                                                graph_2.DrawLine(npen, on_p, off_p);
-
-                                                #endregion
-                                            }
-                                        }
-                                    }
-                                }
-                                data.Rows[c]["mat"] = image;
-                                data.Rows[c]["X"] = f.Rect.X;
-                            }
-                        }
-                    }
-
-                }
-
-                DataView dataView1 = data.DefaultView;
-                dataView1.Sort = "X ASC";
-                data = dataView1.ToTable();
-                list_dt_picdata.Add(data);
-            }
-
-            return list_dt_picdata;
-        }
-    }
-}
+using OTSCommon.Model;
+using OTSIncAReportGraph;
+using OTSIncAReportGraph.Controls;
+using System;
+using System.Collections.Generic;
+using System.Data;
+using System.Drawing;
+using System.Linq;
+using System.Text;
+using System.Threading.Tasks;
+using System.Windows.Forms;
+
+namespace OTSIncAReportApp._3_ServiceCenter
+{
+    class OutPIC
+    {
+        
+        //包含particle的field的列表对象
+        public List<DisplayField> m_list_allDfield = null;
+        public ResultFile resultFile = null;
+        public SaveFileDialog sfd = null;
+        public int type = 0;
+        /// <summary>
+        /// 获取每行图片的位置配合opencv方法使用
+        /// </summary>
+        /// <returns></returns>
+        private List<DataTable> opencv_piclist()
+        {
+            List<DataTable> list_dt_picdata = new List<DataTable>();
+            DataTable picDatat = new DataTable();
+            picDatat.Columns.Add("X", typeof(double));
+            picDatat.Columns.Add("Y", typeof(double));
+            foreach (var f in m_list_allDfield)
+            {
+                DataRow dr = picDatat.NewRow();
+                dr["X"] = f.Rect.X;
+                dr["Y"] = f.Rect.Y;
+                picDatat.Rows.Add(dr);
+            }
+            int y_max = Convert.ToInt32(picDatat.Compute("Max(Y)", "true"));
+            int y_min = Convert.ToInt32(picDatat.Compute("Min(Y)", "true"));
+            DataTable total_dt_X = picDatat.Copy();
+            DataView dv_x = total_dt_X.DefaultView;
+            DataView dv_x_2 = dv_x.ToTable(true, "X").DefaultView;
+            dv_x_2.Sort = "X ASC";
+            total_dt_X = dv_x_2.ToTable();
+
+
+            DataTable total_dt_Y = picDatat.Copy();
+            DataView dv_Y = total_dt_Y.DefaultView;
+            DataView dv_Y_2 = dv_Y.ToTable(true, "Y").DefaultView;
+            dv_Y_2.Sort = "Y ASC";
+            total_dt_Y = dv_Y_2.ToTable();
+
+
+            for (int i = 0; i < total_dt_Y.Rows.Count; i++)
+            {
+                NLog.LogManager.GetCurrentClassLogger().Info("Splice line"+i+1.ToString()+"of"+ total_dt_Y.Rows.Count.ToString()+".....");
+                DataTable data = new DataTable();
+                data.Columns.Add("mat", typeof(Bitmap));
+                data.Columns.Add("X", typeof(double));
+                for (int a = 0; a < total_dt_X.Rows.Count; a++)
+                {
+                    DataRow dr2 = data.NewRow();
+                    Bitmap bitmap = new Bitmap((int)m_list_allDfield[0].Rect.Width, (int)m_list_allDfield[0].Rect.Height);
+                    Graphics g = Graphics.FromImage(bitmap);
+                    g.Clear(Color.White);
+                    g.Dispose();
+                    dr2["mat"] = bitmap;
+                    dr2["X"] = total_dt_X.Rows[a]["X"];
+                    data.Rows.Add(dr2);
+                }
+                foreach (var f in m_list_allDfield)
+                {
+                    if (total_dt_Y.Rows[i]["Y"].ToString() == f.Rect.Y.ToString())
+                    {
+                        for (int c = 0; c < data.Rows.Count; c++)
+                        {
+                            if (data.Rows[c]["X"].ToString() == f.Rect.X.ToString())
+                            {
+                                data.Rows[c]["mat"] = f.OriginalImage;
+                                data.Rows[c]["X"] = f.Rect.X;
+                            }
+                        }
+
+                    }
+                }
+
+
+                DataView dataView1 = data.DefaultView;
+                dataView1.Sort = "X ASC";
+                data = dataView1.ToTable();
+
+
+                list_dt_picdata.Add(data);
+            }
+
+            return list_dt_picdata;
+        }
+        public void opencv_outpic(/*int type*/)
+        {
+            List<DataTable> list_dt_picdata = new List<DataTable>();
+            if (type == (int)Outpic_enum.pic)
+            {
+                list_dt_picdata = opencv_piclist();
+            }
+            else
+                    if (type == (int)Outpic_enum.Render_pic)
+            {
+                list_dt_picdata = opencv_piclist_Render();
+            }
+
+            OpenCvSharp.Mat[] list_mats = new OpenCvSharp.Mat[list_dt_picdata.Count];
+            NLog.LogManager.GetCurrentClassLogger().Info("Organize and splice all pictures......");
+            for (int i = 0; i < list_dt_picdata.Count; i++)
+            {
+                OpenCvSharp.Mat[] mats = new OpenCvSharp.Mat[list_dt_picdata[i].Rows.Count];
+                for (int a = 0; a < list_dt_picdata[i].Rows.Count; a++)
+                {
+                    mats[a] = OpenCvSharp.Extensions.BitmapConverter.ToMat((Bitmap)list_dt_picdata[i].Rows[a]["mat"]);
+                }
+                OpenCvSharp.Mat pano = new OpenCvSharp.Mat();
+                OpenCvSharp.Cv2.HConcat(mats, pano);
+                list_mats[i] = pano;
+                
+            }
+            NLog.LogManager.GetCurrentClassLogger().Info("Picture splicing completed.");
+            NLog.LogManager.GetCurrentClassLogger().Info("Save to disk......");
+            OpenCvSharp.Mat save_pano = new OpenCvSharp.Mat();
+            OpenCvSharp.Cv2.VConcat(list_mats, save_pano);
+            OpenCvSharp.Cv2.ImWrite(sfd.FileName, save_pano);
+            NLog.LogManager.GetCurrentClassLogger().Info("Save complete.");
+        }
+       
+        private List<DataTable> opencv_piclist_Render()
+        {
+            List<DataTable> list_dt_picdata = new List<DataTable>();
+            DataTable picDatat = new DataTable();
+            List<Field> fieldlist = resultFile.List_OTSField;
+            picDatat.Columns.Add("X", typeof(double));
+            picDatat.Columns.Add("Y", typeof(double));
+            foreach (var f in m_list_allDfield)
+            {
+                DataRow dr = picDatat.NewRow();
+                dr["X"] = f.Rect.X;
+                dr["Y"] = f.Rect.Y;
+                picDatat.Rows.Add(dr);
+            }
+            int y_max = Convert.ToInt32(picDatat.Compute("Max(Y)", "true"));
+            int y_min = Convert.ToInt32(picDatat.Compute("Min(Y)", "true"));
+            DataTable total_dt_X = picDatat.Copy();
+            DataView dv_x = total_dt_X.DefaultView;
+            DataView dv_x_2 = dv_x.ToTable(true, "X").DefaultView;
+            dv_x_2.Sort = "X ASC";
+            total_dt_X = dv_x_2.ToTable();
+
+
+            DataTable total_dt_Y = picDatat.Copy();
+            DataView dv_Y = total_dt_Y.DefaultView;
+            DataView dv_Y_2 = dv_Y.ToTable(true, "Y").DefaultView;
+            dv_Y_2.Sort = "Y ASC";
+            total_dt_Y = dv_Y_2.ToTable();
+
+
+            for (int i = 0; i < total_dt_Y.Rows.Count; i++)
+            {
+                NLog.LogManager.GetCurrentClassLogger().Info("Splice line" + i + 1.ToString() + "of" + total_dt_Y.Rows.Count.ToString() + ".....");
+
+                DataTable data = new DataTable();
+                data.Columns.Add("mat", typeof(Bitmap));
+                data.Columns.Add("X", typeof(double));
+                for (int a = 0; a < total_dt_X.Rows.Count; a++)
+                {
+                    DataRow dr2 = data.NewRow();
+                    Bitmap bitmap = new Bitmap((int)m_list_allDfield[0].Rect.Width, (int)m_list_allDfield[0].Rect.Height);
+                    Graphics g = Graphics.FromImage(bitmap);
+                    g.Clear(Color.White);
+                    g.Dispose();
+                    dr2["mat"] = bitmap;
+                    dr2["X"] = total_dt_X.Rows[a]["X"];
+                    data.Rows.Add(dr2);
+                }
+                foreach (var f in m_list_allDfield)
+                {
+                    if (total_dt_Y.Rows[i]["Y"].ToString() == f.Rect.Y.ToString())
+                    {
+                        for (int c = 0; c < data.Rows.Count; c++)
+                        {
+                            if (data.Rows[c]["X"].ToString() == f.Rect.X.ToString())
+                            {
+                                Bitmap image = new Bitmap(f.OriginalImage.Width, f.OriginalImage.Height);
+                                Graphics g2 = Graphics.FromImage(image);
+                                g2.DrawImage(f.OriginalImage, 0, 0, f.OriginalImage.Width, f.OriginalImage.Height);
+                                Graphics graph_2 = Graphics.FromImage(image);
+
+                                for (int a = 0; a < fieldlist.Count; a++)
+                                {
+                                    if (fieldlist[a].FieldID.ToString() == f.FieldID.ToString())
+                                    {
+                                        //先获取该Field中的所有Particle
+                                        List<Particle> list_particle;
+                                        list_particle = fieldlist[a].ParticleList;
+                                        //再循环计算所有的Particle对象
+                                        foreach (Particle particle in list_particle)
+                                        {
+                                            //创建DParticle颗粒
+                                            DisplayParticle dp = new DisplayParticle(particle);
+                                            List<Segment> list_seg;
+                                            list_seg = particle.SegmentList;
+                                            //创建颗粒分布图对应的类对象
+                                            List<DisplaySegment> list_dsegment = new List<DisplaySegment>();
+                                            //再循环取出里面所有的segment
+                                            foreach (Segment seg in list_seg)
+                                            {
+                                                #region 创建DSegment对象,并将STD分析出的化合物颜色保存到DSegment对象中
+
+                                                Point on_p = new Point() { X = seg.Start, Y = seg.Height };
+                                                Point off_p = new Point() { X = seg.Start + seg.Length, Y = seg.Height };
+                                                Pen npen = new Pen(dp.Color);
+                                                graph_2.DrawLine(npen, on_p, off_p);
+
+                                                #endregion
+                                            }
+                                        }
+                                    }
+                                }
+                                data.Rows[c]["mat"] = image;
+                                data.Rows[c]["X"] = f.Rect.X;
+                            }
+                        }
+                    }
+
+                }
+
+                DataView dataView1 = data.DefaultView;
+                dataView1.Sort = "X ASC";
+                data = dataView1.ToTable();
+                list_dt_picdata.Add(data);
+            }
+
+            return list_dt_picdata;
+        }
+    }
+}

+ 1 - 1
OTSIncAReportApp/OTSIncAReportApp.csproj

@@ -579,7 +579,7 @@
       <DependentUpon>OutputNlog.cs</DependentUpon>
     </Compile>
     <Compile Include="3-ServiceCenter\HardwareController.cs" />
-    <Compile Include="3-ServiceCenter\OutPIC.cs" />
+    <Compile Include="1-UI\Control_Graph\Controls\OutPIC.cs" />
     <Compile Include="Help.cs">
       <SubType>Form</SubType>
     </Compile>