一、引言
图像处理技术在现代科技中扮演着重要角色,但对于初学者来说,掌握这些技术可能显得有些复杂。在这篇博客中,我们将带你一步步了解如何利用Python和OpenCV来识别图像中的颜色并绘制轮廓。通过简明的实验原理和代码示例,你将学会如何在实际项目中应用这些基础技术。
二、实验原理
找到轮廓:使用cv2.findContours()
函数找到图像中的轮廓。轮廓是图像中具有相同颜色或灰度值的所有连续点。
绘制轮廓:使用cv2.drawContours()
函数在原始图像上绘制找到的轮廓。
三、实验代码
3.1 功能简介
contours,hierarchy = cv2.findContours(image,mode,method)
用于在二值图像中检测轮廓。轮廓可以看作是将相同颜色或灰度级别的所有连续点(沿边界)连接起来的曲线。
3.2 参数详解
image:表示输入的二值化图像。
mode:表示轮廓的检索模式。有以下几种:
cv2.RETR_EXTERNAL: 只检索最外层的轮廓。
cv2.RETR_LIST: 检索所有的轮廓,但不建立层级关系。
cv2.RETR_CCOMP: 检索所有轮廓,并将它们组织成两层:顶层是外部边界,第二层是内部孔洞的边界。
cv2.RETR_TREE: 检索所有轮廓,并重构嵌套轮廓的完整层级。
method:轮廓的表示方法。有以下几种:
cv2.CHAIN_APPROX_NONE: 将所有的点连成线。
cv2.CHAIN_APPROX_SIMPLE: 压缩水平的、垂直的和对角线段,只保留其端点。
cv2.CHAIN_APPROX_TC89_L1 和 cv2.CHAIN