在一个图像之中只要是有立体感的就能够通过算法来将其轮廓个获取到,轮廓获取在人脸识别以及信息追踪等领域都有很强的适用性 。而在Python内可以通过opencv这个库来实现图像轮廓获取以及绘制操作,下文的详细代码示例和解析就不要错过了 。
文章插图
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如何将图像轮廓绘制出来”的全部内容了,希望对你有所帮助 。
推荐阅读
- Python图像融合代码怎么写?Python如何实现图像融合
- Python如何实现显著性检测算法?Python做显著性检验怎么写
- Python断言是什么意思?Python断言该怎么实现
- Python怎么实现金字塔求和问题?Python如何解决金字塔求和问题
- Python关键字global和nolocal有什么关系?Python中global与nolocal的区别是什么
- VSCode中怎么运行Python的虚拟环境?VSCode中运行Python的虚拟环境的方法
- Linux下如何安装Python虚拟环境?Linux安装Python虚拟环境的两种方法
- Python中如何用split函数实现分割字符串?split()函数实现分割字符串的方法
- Python字典怎么添加值?Python字典添加值的方法
- Linux系统中如何运行Python脚本?怎么在linux上运行Python?