我想使用AForge.NET库检查相似的图像并定位差异。我可以想象以下算法。
一种。比较2张图像,结果生成二进制图像,其中白色像素表示差异,黑色像素表示匹配。
b。使用BlobCounter搜索连接的像素。
什么过滤器可用于a)?如何计算每个Blob中的像素?
最佳答案
在这里查看我以前的答案Aforge Blob Detection
对于A),您可以使用ThresholdDifference,这将在没有变化的情况下为您提供黑色像素,在有差异的情况下为您提供白色像素。您可以使用Image> Invert(http://www.aforgenet.com/framework/docs/html/458e1304-0858-ae29-113f-e2ec9072c626.htm)将其反转
对于B),您可以使用Connected Component Labeling(请参见文章),这将给出对象的大致宽度和高度。如果您想精确计算出多少像素不同,您可能需要为此编写一个过程。这不是很困难,它只是两个嵌套的For循环,它将遍历每个X,Y像素,然后每次在其上找到特定颜色时都会增加一个计数器。
关于c# - AForge.NET在两个图像中比较并查找Blob(连接的组件),我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/14594320/