AForge.NET BlobsExplorer图片块识别例子详解
最近在做一个服装裁床的项目,需要可视化操作根据设计图纸裁剪到哪里就点击哪里装车。这样就需要用到图像图形识别技术了,在网上找了一下,发现AForge.NET在图像处理方面还不错,而且提供了大量的例子。其中就有块识别的功能,如下截图:
废话不多说,马上讲解这个块识别功能。功能运行界面如下:
用到的DLL文件AForge.dll、AForge.Imaging.dll、AForge.Math.dll
例子项目目录结构:
项目本身已经封装好了一个显示控件给你BlobsBrowser.cs,你只需拖拽到pannel就可以,非常方便。
后台只需要将图片文件转成BitMap赋值给控件就可以
控件解析完后会生成很多块,图片上的点按块保存起来。我为了方便些了一个通过点击图片图片上任意点获取块ID的方法:
public Blob GetBlobByPoint(System.Drawing.Point p)
{
int x = p.X - 1;
int y = p.Y - 1;
if ((image != null) && (x >= 0) && (y >= 0) &&
(x < imageWidth) && (y < imageHeight))
{
int blobID = blobCounter.ObjectLabels[y * imageWidth + x];
if (blobID != 0)
{
foreach (var item in blobs)
{
if (blobID == item.ID)
{
return item;
}
}
}
}
return null;
}
基本上就是这些,下载附件:https://download.csdn.net/download/gzxtt/12514775
如果对您有帮助,可以打赏一块两块,既是鼓励也是鞭策。