opencvSharp利用hu不变矩判断两张图片是否水平翻转
工作中有个步骤需要判断两张图片是否水平翻转,在网上找了一圈,发现了一个很简单的实现方法,就是利用hu不变矩的第七个矩的符号来判断即可,关于hu不变矩的详情请参考:OpenCV 中的矩(moments)和 Hu不变矩(HuMoments)。
代码实现起来就更简单了:
public static double GetHuMoments7(Mat src)
{
using(var dst = new Mat())
{
//如果不准,可能需要将两张图片缩小成128x128或者64x64的尺寸再计算
Cv2.CvtColor(src, dst, ColorConversionCodes.RGB2GRAY);
return Cv2.Moments(dst).HuMoments().Last();
}
}