检查图像与OpenCV的相似性OpenCV是否支持两个图像的比较,返回一些值(可能是百分比),表示这些图像有多相似?例如,如果相同的图像被传递两次将返回100%,如果图像完全不同则将返回0%。我已经在StackOverflow上阅读了很多类似的主题。我也做了一些谷歌搜索。可悲的是,我无法想出一个令人满意的答案。
3 回答
慕码人8056858
TA贡献1803条经验 获得超6个赞
如果匹配相同的图像(相同的大小/方向)
// Compare two images by getting the L2 error (square-root of sum of squared error).double getSimilarity( const Mat A, const Mat B ) {if ( A.rows > 0 && A.rows == B.rows && A.cols > 0 && A.cols == B.cols ) { // Calculate the L2 relative error between images. double errorL2 = norm( A, B, CV_L2 ); // Convert to a reasonable scale, since L2 error is summed across all pixels of the image. double similarity = errorL2 / (double)( A.rows * A.cols ); return similarity;}else { //Images have a different size return 100000000.0; // Return a bad value}
添加回答
举报
0/150
提交
取消