能用什么指标或者什么方法来判断两张图片的特征分布的相似度?
怎么比较两张图片在低频信息上的相似度?
目的:想通过比较两张图或者一组图的特征分布的差异,然后做特征对齐。
佬们求解!
百度有智能识别接口!
https://ask.csdn.net/questions/7639938
cv2.absdiff():
absdiff 获取差分图 就是将两幅图像作差
参数说明
src1:第一个输入数组或标量。
src2:第二个输入数组或标量。
dst:与输入数组具有相同大小和类型的输出数组。
两张图片进行对比,返回的结果代表他们的差异之处。
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);
}
}