我能够将第二张图像转换为相同的比例和方向,现在尝试使用找到该点,absdiff
但由于图像不完全匹配,我在差异图像上有边缘。
我在想,我需要在像 n × n 像素这样的区域中找到最小差异,而不是具有相同坐标的像素之间的差异。所以问题是:OpenCV 是否有针对该问题的解决方案和/或是否有更好的解决方案?
public static Image<Bgr, Byte> Diff(Image<Bgr, Byte> image1,
Image<Bgr, byte> image2,
int erodeIterations=2)
{
return Diff(image1, image2, new Bgr(50, 50, 50), erodeIterations);
}
public static Image<Bgr, Byte> Diff(Image<Bgr, Byte> image1,
Image<Bgr, byte> image2,
Bgr thresholdColor,
int erodeIterations)
{
var diff = image1.AbsDiff(image2);
diff = diff.ThresholdToZero(thresholdColor);
diff = diff.Erode(erodeIterations);
return diff;
}