在Python中,轮廓和二值化是图像处理中一些基本操作。下面我们来介绍一下如何在Python中实现这两个操作。
第一步是加载图像。可以使用OpenCV库中的cv2.imread()方法读取一个图像文件。
import cv2 # 加载图像 img = cv2.imread('image.jpg', 0)
第二步是将图像二值化。使用cv2.threshold()方法,可以将图像变为黑白二值图像。
import cv2 # 加载图像 img = cv2.imread('image.jpg', 0) # 将图像二值化 ret, thresh = cv2.threshold(img, 127, 255, cv2.THRESH_BINARY)
第三步是计算图像的轮廓。使用cv2.findContours()方法,可以得到图像中的所有轮廓。
import cv2 # 加载图像 img = cv2.imread('image.jpg', 0) # 将图像二值化 ret, thresh = cv2.threshold(img, 127, 255, cv2.THRESH_BINARY) # 计算轮廓 contours, hierarchy = cv2.findContours(thresh, cv2.RETR_TREE, cv2.CHAIN_APPROX_SIMPLE)
最后,可以使用cv2.drawContours()方法把轮廓画在原图上。
import cv2 # 加载图像 img = cv2.imread('image.jpg') # 将图像二值化 ret, thresh = cv2.threshold(img, 127, 255, cv2.THRESH_BINARY) # 计算轮廓 contours, hierarchy = cv2.findContours(thresh, cv2.RETR_TREE, cv2.CHAIN_APPROX_SIMPLE) # 在原图上画出轮廓 cv2.drawContours(img, contours, -1, (0, 255, 0), 3) # 显示结果 cv2.imshow('image', img) cv2.waitKey(0) cv2.destroyAllWindows()
通过以上几个步骤,我们就可以在Python中实现图像处理中的轮廓和二值化操作了。