visionpro 使用C sharp简本获取Blob最小外接矩形,然后创建与输入图像等大的图像,中间画矩形并填充颜色。最后做图像差
时间: 2024-03-08 10:47:39 浏览: 425
以下是使用C#获取Blob最小外接矩形,然后创建与输入图像等大的图像,中间画矩形并填充颜色,最后做图像差的代码:
```
using System;
using Cognex.VisionPro;
using Cognex.VisionPro.Blob;
namespace VisionProExample
{
class Program
{
static void Main(string[] args)
{
// Load image
CogImage8Grey img = new CogImage8Grey();
img.Load("C:\\Images\\input.jpg");
// Threshold image
CogThresholdTool thresholdTool = new CogThresholdTool();
thresholdTool.InputImage = img;
thresholdTool.Run();
img = thresholdTool.OutputImage as CogImage8Grey;
// Find blobs
CogBlobTool blobTool = new CogBlobTool();
blobTool.InputImage = img;
blobTool.Run();
CogBlobResults blobs = blobTool.Results;
// Get minimum bounding rectangles
CogMBRTool mbrTool = new CogMBRTool();
mbrTool.InputImage = img;
mbrTool.Results = blobs;
mbrTool.Run();
// Create output image
CogImage8Grey outputImg = new CogImage8Grey();
outputImg.Create(img.Width, img.Height);
// Draw rectangles and fill with color
foreach (CogRectangle rect in mbrTool.Results)
{
outputImg.FillRect(rect.CenterX - rect.Width / 2, rect.CenterY - rect.Height / 2, rect.Width, rect.Height, 255);
}
// Compute image difference
CogImage8InvertTool diffTool = new CogImage8InvertTool();
diffTool.InputImage = img;
diffTool.Run();
img = diffTool.OutputImage as CogImage8Grey;
img.Combine(outputImg, CogImageOperationConstants.Subtract);
// Display result
CogDisplay disp = new CogDisplay();
disp.Image = img;
disp.Fit(true);
}
}
}
```
这个代码与前面的VisionPro脚本非常相似,但使用了C#来编写。它创建了一个CogImage8Grey对象来加载图像,并使用CogThresholdTool进行阈值处理。然后,它使用CogBlobTool找到Blob,使用CogMBRTool获取最小外接矩形,并创建一个与输入图像大小相同的输出图像。接下来,它循环遍历每个最小外接矩形,绘制矩形和填充颜色。最后,它使用CogImage8InvertTool计算输入图像与输出图像的差异,并将其显示在CogDisplay对象中。你可以根据自己的需求修改代码来实现不同的功能。
阅读全文