C#实现图片的上一张和下一张以及Visionpro进行存图

409 阅读3分钟

本文已参与「新人创作礼」活动,一起开启掘金创作之路。

C#实现图片的上一张和下一张


        public Form1()
        {

            InitializeComponent();
        }

        private void button1_Click(object sender, EventArgs e)
        {
            try
            {
                string aasd = asd.Text;
                string[] path = System.IO.Directory.GetFiles(aasd);
                label1.Text = Convert.ToString(i++);
                j++;
                label2.Text = Convert.ToString(c++);


                pictureBox1.Image = Image.FromFile(path[j]);
            }
            catch (Exception)
            {

                MessageBox.Show("唧唧复唧唧");
            }

        }

        private void button2_Click(object sender, EventArgs e)
        {
            c = c + 2;
            try
            {
                string aasd = asd.Text;
                string[] path = System.IO.Directory.GetFiles(aasd);
                label1.Text = Convert.ToString(i++);
                j++;
                label2.Text = Convert.ToString(c);


                pictureBox1.Image = Image.FromFile(path[j]);
            }
            catch (Exception)
            {

                MessageBox.Show("唧唧复唧唧");
            }
        }

        private void button4_Click(object sender, EventArgs e)
        {
            try
            {
                string aasd = asd.Text;
                string[] path = System.IO.Directory.GetFiles(aasd);

                pictureBox1.Image = Image.FromFile(path[0]);
            }
            catch (Exception)
            {

                MessageBox.Show("唧唧复唧唧");
            }


        }


        /// <summary>
        /// 点击更换下一张图片
        /// </summary>
        /// <param name="sender"></param>
        /// <param name="e"></param>


        private void Form1_Load(object sender, EventArgs e)
        {
            label2.Text = Convert.ToString(c);
            label1.Text = Convert.ToString(i);
            c++;
            i++;
        }

        private void button3_Click(object sender, EventArgs e)
        {


            string aasd = asd.Text;
            string[] path = System.IO.Directory.GetFiles(aasd);
            j++;


            pictureBox1.Image = Image.FromFile(path[j]);
        }

        private void button5_Click(object sender, EventArgs e)
        {
            label2.Text = Convert.ToString(c++);
        }

        private void button6_Click(object sender, EventArgs e)
        {
            i = 0;
            j = 0;
            c = 0;
            label2.Text = Convert.ToString(c);
            label1.Text = Convert.ToString(i);
            c++;
            i++;


        }

        private void button7_Click(object sender, EventArgs e)
        {
            c = c + 3;
            try
            {
                string aasd = asd.Text;
                string[] path = System.IO.Directory.GetFiles(aasd);
                label1.Text = Convert.ToString(i++);
                j++;
                label2.Text = Convert.ToString(c);


                pictureBox1.Image = Image.FromFile(path[j]);
            }
            catch (Exception)
            {

                MessageBox.Show("唧唧复唧唧");
            }
        }

        private void button8_Click(object sender, EventArgs e)
        {
            c = c + 4;
            try
            {
                string aasd = asd.Text;
                string[] path = System.IO.Directory.GetFiles(aasd);
                label1.Text = Convert.ToString(i++);
                j++;
                label2.Text = Convert.ToString(c);


                pictureBox1.Image = Image.FromFile(path[j]);
            }
            catch (Exception)
            {

                MessageBox.Show("唧唧复唧唧");
            }
        }

        private void button9_Click(object sender, EventArgs e)
        {

            try
            { 
            string aasd = asd.Text;
            string[] path = System.IO.Directory.GetFiles(aasd);
            j--;


            pictureBox1.Image = Image.FromFile(path[j]);
            }
            catch
            {
                MessageBox.Show("唧唧复唧唧");

            }
        }

        private void button10_Click(object sender, EventArgs e)
        {
            c = c + 5;
            try
            {
                string aasd = asd.Text;
                string[] path = System.IO.Directory.GetFiles(aasd);
                label1.Text = Convert.ToString(i++);
                j++;
                label2.Text = Convert.ToString(c);


                pictureBox1.Image = Image.FromFile(path[j]);
            }
            catch (Exception)
            {

                MessageBox.Show("唧唧复唧唧");
            }
        }

        private void button11_Click(object sender, EventArgs e)
        {
            label2.Text = Convert.ToString(c--);
        }

        private void pictureBox1_Click(object sender, EventArgs e)
        {

        }
    }

visionpro 保存图片

'*******************************数组清零****************************************
    DisListlabel.Clear
    DisListCircle.Clear
    DisListRect.clear
    '*******************************定义变量****************************************
    Dim ResultFlag As String = "3"
    Dim OutputString As String = ""
    Dim NGMessage As String = "NG"
    Dim LogData As String = ""
    Dim StrCode As String  
    Dim gPicOKPathC1 As String = "D:\Logging\OP30-1_Image\OK"        
    Dim gPicNGPathC1 As String = "D:\Logging\OP30-1_Image\NG"
        Dim pth As String = "D:\Logging\OP30-1_Image\NG"
        Dim filename As String = DateTime.Now.ToString("yyyy-MM-dd hh-dd-ss") & ".bmp"

        CreateFolder(gPicNGPathC1)
    CreateFolder(gPicOKPathC1)
    mtoolblock.Outputs("DisplayIndex").value = 0
    '*******************************定义工具***************************************
    Dim ab As Double = mtoolblock.Inputs("xishu").value
    Dim pattern As CogPMAlignTool = CType(mToolBlock.Tools("CogPMAlignTool1"), CogPMAlignTool)
    Dim pattern1 As CogPMAlignTool = CType(mToolBlock.Tools("CogPMAlignTool2"), CogPMAlignTool)
    Dim blob1 As CogBlobTool = CType(mToolBlock.Tools("CogBlobTool1"), CogBlobTool)
    Dim blob2 As CogBlobTool = CType(mToolBlock.Tools("CogBlobTool2"), CogBlobTool)
    Dim dis As CogDistancePointLineTool = CType(mToolBlock.Tools("CogDistancePointLineTool1"), CogDistancePointLineTool)
    Dim clo As CogColorMatchTool = CType(mToolBlock.Tools("CogColorMatchTool1"), CogColorMatchTool)
    Dim dis1 As CogDistancePointLineTool = CType(mToolBlock.Tools("CogDistancePointLineTool2"), CogDistancePointLineTool)
    '*******************************运行工具****************************************
    'Run each tool using the RunTool function
    For Each tool As Cognex.VisionPro.ICogTool In mToolBlock.Tools
      mToolBlock.RunTool(tool, message, result)
    Next
    '*******************************视觉检测****************************************
    Try
      If clo.Result.ResultOfBestMatch.MatchScore > 0.88 Then
        If pattern.Results.Count > 0 And pattern.RunStatus.Result = CogToolResultConstants.Accept Then
      
          If blob1.Results.GetBlobs.Count > 0 And blob2.Results.GetBlobs.Count > 0  Then 
            If dis.Distance > CDbl(mtoolblock.Inputs("min").value) * ab And dis.Distance < CDbl(mtoolblock.Inputs("max").value) * ab And dis1.Distance > CDbl(mtoolblock.Inputs("min1").value) * ab And dis1.Distance < CDbl(mtoolblock.Inputs("max1").value) * ab  Then 
              If pattern1.Results.Count = 0 Then
              ResultFlag = "1"
                NGMessage = ""
              OutputString = "OK"
              AddLabel(570, 1070, OutputString, True)
                mtoolblock.Outputs("DisplayIndex").value = 1
              Else
                ResultFlag = "2"
                NGMessage = "NG"
                OutputString = "0000"
                LogData = "9999"
                AddLabel(1070, 1570, NGMessage, False)
              End If
            Else
              ResultFlag = "2"
              NGMessage = "NG"
              OutputString = "0000"
              LogData = "9999"
              AddLabel(1070, 1570, NGMessage, False)
            End If 
          Else 
            ResultFlag = "2"
            NGMessage = "NG"
            OutputString = "0000"
            LogData = "9999"
            AddLabel(1070, 1570, NGMessage, False)
          End If 
        Else  If dis.Distance > CDbl(mtoolblock.Inputs("min").value) * ab And dis.Distance < CDbl(mtoolblock.Inputs("max").value) * ab And dis1.Distance > CDbl(mtoolblock.Inputs("min1").value) * ab And dis1.Distance < CDbl(mtoolblock.Inputs("max1").value)  * ab Then 
          If pattern1.Results.Count > 0 And pattern.RunStatus.Result = CogToolResultConstants.Accept Then
          ResultFlag = "2"
          NGMessage = "转90°"
          OutputString = "转90°"
            LogData = "转90°"
            AddLabel(1070, 1570, NGMessage, False)
          Else
            ResultFlag = "2"
            NGMessage = "NG"
            OutputString = "0000"
            LogData = "9999"
            AddLabel(1070, 1570, NGMessage, False)
          End If
        Else
          ResultFlag = "2"
          NGMessage = "NG"
          OutputString = "0000"
          LogData = "9999"
          AddLabel(1070, 1570, NGMessage, False)
        End If 
      Else
        ResultFlag = "2"
        NGMessage = "NG"
        OutputString = "9999"
        LogData = "9999"
        AddLabel(1070, 1570, NGMessage, False)
      End If 
      If ResultFlag = 1 Then 
        pth = gPicOKPathC1 + "/" + filename
      Else
        pth = gPicNGPathC1 + "/" + filename
      End If
      Dim ScaleImage As New Bitmap(2592, 1944)
      ScaleImage = mToolBlock.Outputs("OutputImage").value.ToBitmap
      ScaleImage.Save(pth, System.Drawing.Imaging.ImageFormat.Jpeg)
        
        '  End If
    Catch
    End Try
    
    '*******************************输出结果****************************************
    mToolBlock.Outputs("NGMessage").value = NGMessage
    mToolBlock.Outputs("ResultFlag").value = ResultFlag
    mToolBlock.Outputs("OutputString").value = OutputString
   
    Return False
  End Function
  
  '**********************************添加文字功能**********************
  Private Sub AddLabel(ByVal x As Double, ByVal  y As Double, ByVal text As String, ByVal Flag As Boolean)
    Dim DisLabel As New CogGraphicLabel
    DisLabel.Font = New Font("Arial", 20)
    DisLabel.SelectedSpaceName = "#"
    DisLabel.SetXYText(x, y, text)
    If Flag Then
      DisLabel.Color = CogColorConstants.Green
    Else
      DisLabel.Color = CogColorConstants.red
    End If
    DisListlabel.Add(DisLabel)
  End Sub
  Private Sub CreateFolder(ByVal Path As String)
    If Not Directory.Exists(Path) Then
      Directory.CreateDirectory(Path)
    End If
  End Sub
  '***********************************添加圆形框********************************************
  Private Sub AddCircle(ByVal x As Double, ByVal  y As Double, ByVal  r As Double, ByVal Flag As Boolean)
    Dim DisCircle As New CogCircle
    DisCircle.SelectedSpaceName = "#" 
    DisCircle.LineWidthInScreenPixels = 3
    DisCircle.SetCenterRadius(x, y, r)  
   
    If Flag Then
      DisCircle.Color = CogColorConstants.Green
    Else
      DisCircle.Color = CogColorConstants.Red
      
    End If
    DisListCircle.Add(DisCircle)
    
  End Sub
  
  '***********************************添加矩形框********************************************
  Private Sub AddRect(ByVal x As Double, ByVal  y As Double, ByVal Width As Double, ByVal Height As Double, ByVal Flag As Boolean)
    Dim DisRect As New CogRectangle
    DisRect.SelectedSpaceName = "#" 
    DisRect.LineWidthInScreenPixels = 3
    DisRect.SetXYWidthHeight(x, y, Width, Height)  
    If Flag Then
      DisRect.Color = CogColorConstants.Green
    Else
      DisRect.Color = CogColorConstants.Red
      
    End If
    DisListRect.Add(DisRect)
    
  End Sub