如何在OpenCV Python中匹配图像形状?

本文介绍了如何使用OpenCV的matchShapes()函数在Python中比较和匹配图像形状。通过计算Hu矩来评估形状相似性,度量值越低表示形状越相似。通过示例1和示例2,展示了如何读取图像、处理二值化、查找轮廓并应用匹配函数,最终得出形状匹配的结果。
摘要由CSDN通过智能技术生成

我们使用 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
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值