我们使用 cv2.matchShapes() 函数来匹配两个图像形状。该函数返回一个度量标准,显示图像形状之间的相似性。该函数使用Hu矩来计算度量值。度量值越低,图像形状之间的相似性就越高。
在以下示例中,我们将匹配来自不同图像的形状以及单个图像中的形状。
语法
我们使用以下语法来匹配两个图像形状-
ret = cv2.matchShapes(cnt1,cnt1,1,0.0)
其中,
- cnt1 - 第一个图像形状的轮廓点
-
cnt2 - 第二个图像形状的轮廓点
步骤
您可以使用以下步骤来匹配两个图像形状-
导入所需的库。在所有以下Python示例中,所需的Python库都是 OpenCV 。请确保您已经安装了它。
import cv2
使用 cv2.imread() 将输入图像作为灰度图像读取。
img1 = cv2.imread('star.png',0)
img2 = cv2.imread('star1.png',0)
在灰度图像上应用阈值处理,以创建二进制图像。
ret,thresh1 = cv2.threshold(img1,150,255,0 )
ret,thresh2 = cv2.threshold(img1,150,255,0 )
在二进制图像中查找形状的轮廓,使用 cv2.findContours() 函数。
contours1,_ = cv2.findContours(thresh1,cv2.RE