检查图像与OpenCV的相似性

检查图像与OpenCV的相似性

OpenCV是否支持两个图像的比较,返回一些值(可能是百分比),表示这些图像有多相似?例如,如果相同的图像被传递两次将返回100%,如果图像完全不同则将返回0%。

我已经在StackOverflow上阅读了很多类似的主题。我也做了一些谷歌搜索。可悲的是,我无法想出一个令人满意的答案。


饮歌长啸
浏览 644回答 3
3回答

慕码人8056858

如果匹配相同的图像(相同的大小/方向)// 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}资源
打开App,查看更多内容
随时随地看视频慕课网APP