本文已参与「新人创作礼」活动,一起开启掘金创作之路。
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