wordpress js 插件開發(fā)百度視頻排名優(yōu)化
- 操作系統(tǒng):ubuntu22.04
- OpenCV版本:OpenCV4.9
- IDE:Visual Studio Code
- 編程語言:C++11
算法描述
比較兩個(gè)形狀。
該函數(shù)用于比較兩個(gè)形狀。所有三個(gè)實(shí)現(xiàn)的方法都使用了 Hu 不變矩(參見 HuMoments)
函數(shù)原型
double cv::matchShapes
(InputArray contour1,InputArray contour2,int method,double parameter
)
參數(shù)
- 參數(shù)contour1 第一個(gè)輪廓或灰度圖像。
- 參數(shù)contour2 第二個(gè)輪廓或灰度圖像。
- 參數(shù)method 比較方法,參見 ShapeMatchModes。
- 參數(shù)parameter 方法特定的參數(shù)(目前不支持)。
返回值
返回一個(gè)表示兩個(gè)形狀相似度的雙精度浮點(diǎn)數(shù)。數(shù)值越小,表示兩個(gè)形狀越相似。
代碼示例
#include <iostream>
#include <opencv2/opencv.hpp>int main()
{// 定義兩個(gè)矩形的頂點(diǎn)std::vector< cv::Point > contour1 = { cv::Point( 0, 0 ), cv::Point( 2, 0 ), cv::Point( 2, 2 ), cv::Point( 0, 2 ) };std::vector< cv::Point > contour2 = { cv::Point( 1, 1 ), cv::Point( 3, 1 ), cv::Point( 3, 3 ), cv::Point( 1, 3 ) };// 計(jì)算兩個(gè)輪廓的相似度double similarity = cv::matchShapes( contour1, contour2, cv::CONTOURS_MATCH_I1, 0.0 );std::cout << "Similarity between contours: " << similarity << std::endl;return 0;
}
運(yùn)行結(jié)果
Similarity between contours: 6.66134e-16
得到的結(jié)果 6.66134e-16 是一個(gè)非常小的數(shù)值,接近于零。這意味著根據(jù) cv::matchShapes 函數(shù)的計(jì)算,兩個(gè)輪廓之間的相似度非常高,幾乎完全相同。在數(shù)值計(jì)算中,如此小的數(shù)值通常表示兩個(gè)對象之間幾乎沒有差異。