我试图写一些可以接受2张图像的东西并返回一个数组(或某种类型的集合),每个元素代表图像之间的差异。
例如,如果我有一张背景照片和一名男子站在源图像的右侧,而不是同一张照片,但与第一张照片的不同之处在于该男子站在左侧比我将有一个1的集合返回给我,其中XY坐标开始变化,变化的宽度和高度。
我发现AForge有一个BlobCounter类用于此目的,但无法准确理解我应该给它的内容 - 在文档中的示例(http://www.aforgenet.com/framework/docs/html/d7d5c028-7a23-e27d-ffd0-5df57cbd31a6.htm)中我只看到处理一张图片 - 但不是比较。我无法找到更好的例子。
我在这里缺少什么(我是图像处理的新手)。
答案 0 :(得分:1)
通过此处的帖子找到解决方案:Aforge Blob Detection以及BlobCounters
这是我的解决方案:
// create filter
ThresholdedDifference filter = new ThresholdedDifference(60);
// apply the filter
filter.OverlayImage = currentImg;
Bitmap resultImage = filter.Apply(_lastImg);
// create an instance of blob counter algorithm
BlobCounter bc = new BlobCounter();
// process binary image
bc.ProcessImage(resultImage);
Rectangle[] rects = bc.GetObjectsRectangles();
// process blobs
foreach (Rectangle rect in rects)
{
string a = String.Empty;
}