Python OpenCV 图像处理:二值化、轮廓检测及外接矩形
以下代码使用 Python OpenCV 库进行图像处理,包括图像读取、二值化、轮廓检测和外接矩形计算。
image = cv2.imread('new_file_path', 0)
ret, thresh1 = cv2.threshold(image, 30, 255, cv2.THRESH_BINARY)
contours, hierarchy = cv2.findContours(thresh1, cv2.RETR_LIST, cv2.CHAIN_APPROX_SIMPLE)
x, y, w, h = cv2.boundingRect(cont)
代码解释:
-
读取图像并转换为灰度图像:
image = cv2.imread('new_file_path', 0): 使用cv2.imread()函数读取名为 'new_file_path' 的图像,参数 0 指定读取为灰度图像,并将结果保存在变量image中。
-
二值化处理:
ret, thresh1 = cv2.threshold(image, 30, 255, cv2.THRESH_BINARY): 使用cv2.threshold()函数对图像进行二值化处理。参数说明:image: 待处理的灰度图像。30: 阈值,大于该值的像素设置为 255,小于等于该值的像素设置为 0。255: 最大值,设置为 255 代表白色。cv2.THRESH_BINARY: 二值化类型,将像素值大于阈值的设置为最大值,小于阈值的设置为 0。
- 返回值
ret为阈值,thresh1为二值化后的图像。
-
轮廓检测:
contours, hierarchy = cv2.findContours(thresh1, cv2.RETR_LIST, cv2.CHAIN_APPROX_SIMPLE): 使用cv2.findContours()函数在二值化后的图像thresh1中寻找轮廓。参数说明:thresh1: 二值化后的图像。cv2.RETR_LIST: 轮廓检索模式,表示检索所有轮廓,不建立层次结构。cv2.CHAIN_APPROX_SIMPLE: 轮廓近似方法,使用最少点数表示轮廓。
- 返回值
contours为轮廓列表,hierarchy为轮廓的层次结构信息。
-
计算外接矩形:
x, y, w, h = cv2.boundingRect(cont): 使用cv2.boundingRect()函数计算轮廓cont的最小外接矩形,并返回矩形的左上角坐标 (x, y) 和宽度 w、高度 h。
本代码示例演示了使用 Python OpenCV 库进行图像处理的基本操作,包括图像读取、二值化、轮廓检测和外接矩形计算。这些操作在图像识别、目标检测等领域有着广泛的应用。
原文地址: https://www.cveoy.top/t/topic/qhJW 著作权归作者所有。请勿转载和采集!