使用不会产生伪影的图像格式(如 BMP 或PNG),然后您可以进行逐像素比较。我认为您可以使用共同的Euclidean Distance检查每个像素。为了稍微提高性能,不要计算平方根,而是检查距离的平方
// Maximum color distance allowed to define pixel consistency.
const float maxDistanceAllowed = 5.0;
// Square of the distance, used in calculations.
float maxD = maxDistanceAllowed * maxDistanceAllowed;
public bool isPixelConsistent(Color pixel1, Color pixel2)
{
// Euclidean distance in 3-dimensions.
float distanceSquared = (pixel1.R - pixel2.R)*(pixel1.R - pixel2.R) + (pixel1.G - pixel2.G)*(pixel1.G - pixel2.G) + (pixel1.B - pixel2.B)*(pixel1.B - pixel2.B);
// If the actual distance is less than the max allowed, the pixel is
// consistent and the method returns TRUE
return distanceSquared <= maxD;
}
没有测试 C# 代码,但它应该给你的想法。尝试一下并maxDistanceAllowed
根据您的需要进行调整。