二张JPG图片请问如何对比它的相似度,例如:90% ,100% ,,60%?
我给图片,请看一下,是二张监控图片,请问相似度如何计算?通过C#来实现。
二张JPG图片请问如何对比它的相似度,例如:90% ,100% ,,60%?
我给图片,请看一下,是二张监控图片,请问相似度如何计算?通过C#来实现。
c# 的话 用OpenCVSharp 会简单些
float Similar(Mat src, Mat src2)
{
Mat gray1 = new Mat(src.Size(), src.Type()),
gray2 = new Mat(src2.Size(), src2.Type());
Cv2.CvtColor(src, gray1, ColorConversionCodes.BGR2GRAY);
Cv2.CvtColor(src2, gray2, ColorConversionCodes.BGR2GRAY);
var size = new OpenCvSharp.Size(512, 512);
using (var scaledImg1 = gray1.Resize(size))
using (var scaledImg2 = gray2.Resize(size))
{
Cv2.Threshold(scaledImg1, scaledImg1, 128, 255, ThresholdTypes.BinaryInv);
Cv2.Threshold(scaledImg2, scaledImg2, 128, 255, ThresholdTypes.BinaryInv);
Mat res = new Mat(size, scaledImg1.Type());
Cv2.Absdiff(scaledImg1, scaledImg2, res);
var all = (float)scaledImg1.Sum();
var result = (float)res.Sum();
return (1 - result / all);
}
}