matchShapes使用例子
时间: 2023-09-10 15:10:51 浏览: 47
matchShapes函数是OpenCV中用于计算两个形状之间的相似度的函数。它基于Hu矩来计算形状之间的距离,返回的值越小,表示两个形状越相似。以下是一个使用matchShapes函数的例子:
```python
import cv2
# 读取两个形状的轮廓
img1 = cv2.imread('shape1.png')
img2 = cv2.imread('shape2.png')
gray1 = cv2.cvtColor(img1, cv2.COLOR_BGR2GRAY)
gray2 = cv2.cvtColor(img2, cv2.COLOR_BGR2GRAY)
_, thresh1 = cv2.threshold(gray1, 127, 255, cv2.THRESH_BINARY)
_, thresh2 = cv2.threshold(gray2, 127, 255, cv2.THRESH_BINARY)
contours1, _ = cv2.findContours(thresh1, cv2.RETR_EXTERNAL, cv2.CHAIN_APPROX_SIMPLE)
contours2, _ = cv2.findContours(thresh2, cv2.RETR_EXTERNAL, cv2.CHAIN_APPROX_SIMPLE)
# 计算两个形状之间的相似度
match = cv2.matchShapes(contours1[0], contours2[0], cv2.CONTOURS_MATCH_I1, 0)
# 输出相似度
print('match:', match)
```
在这个例子中,我们首先读取了两个形状的轮廓,并将它们转换为灰度图像和二值图像。然后使用`cv2.findContours`函数找到二值图像中的轮廓。接下来,我们使用`cv2.matchShapes`函数计算两个形状之间的相似度,并将结果输出。