Python获取图像轮廓怎么做?Python如何将图像轮廓绘制出来

在一个图像之中只要是有立体感的就能够通过算法来将其轮廓个获取到,轮廓获取在人脸识别以及信息追踪等领域都有很强的适用性 。而在Python内可以通过opencv这个库来实现图像轮廓获取以及绘制操作,下文的详细代码示例和解析就不要错过了 。

Python获取图像轮廓怎么做?Python如何将图像轮廓绘制出来

文章插图
1.图像轮廓获取的原理就是找到一个图像之中颜色或者强度相同的连续点曲线,并且该曲线尽量接近闭合状态,简单来说轮廓就是图像物体之中的边缘 。而为了让边缘更加突出,就要将其转为黑白色彩的图像不受其他颜色的影响,示例如下:
import cv2import numpy as npimg = cv2.imread('img.jpg')imgray = cv2.cvtColor(img, cv2.COLOR_BGR2GRAY)2.转为黑白图之后还不够,还需要调用threshold()方法对图像进行二值化处理,也就是将图像的色彩完全的转为某一个通道的颜色,示例如下:
ret, thresh = cv2.threshold(imgray, 127, 255, 0)3.之后调用findContours()方法来获取到图像轮廓,因为该方法的作用是从黑色的底色之中找到白色的对象,并且它不会对原图造成影响,示例如下:
im2, contours, hierarchy = cv2.findContours(thresh, cv2.RETR_TREE, cv2.CHAIN_APPROX_SIMPLE)4.在上一步之中已经获取到了原图像之中所有物体的轮廓,那么调用drawContours()方法就能够将其绘制出来,传入参数-1表示绘制所有轮廓,其他的整数就表示绘制第几个轮廓了,详细代码示例如下所示:
cnt = contours[0]cv2.drawContours(img,[cnt],0,(0,255,0),3)cv2.imshow('src',img)【Python获取图像轮廓怎么做?Python如何将图像轮廓绘制出来】以上就是关于“Python获取图像轮廓怎么做?Python如何将图像轮廓绘制出来”的全部内容了,希望对你有所帮助 。

    推荐阅读