在图像的处理中有时候需要对图像中的目标区域提出出轮廓
读取图像
调用OpenCV的库使用cv.imread()来读取图像。
图像为
灰度化
二值化
提取轮廓时,图像一般都是二值化后的图像。在本次程序中选用cv2.THRESH_BINARY的二值化方式。即将大于阈值的部分设定为255,小于阈值的部分设定为0.效果如下
其中gray是输入的需要二值化的图像,230是阈值(自行尝试找出最佳阈值),255固定值,cv2.THRESH_BINARY是一种二值化方式。
得到的二值化后的图像为
找轮廓
fan是二值化的图像,需要使得提取轮廓的区域为白色其余为黑色。因此在二值化后需要进行反色。
反色后效果图
有了如下代码:
绘制轮廓
使用此函数来在原图上绘制轮廓,其中i是需要在哪个图像想绘制出的轮廓。
contours就是提取出来的轮廓。
0位第一条轮廓
(0,255,255)设定轮廓的颜色. 2代表线的粗细,
绘制出的轮廓如下