怎么利用Python+OpenCV实现简易图像边缘轮廓检测


本篇内容主要讲解“怎么利用Python+OpenCV实现简易图像边缘轮廓检测”,感兴趣的朋友不妨来看看。本文介绍的方法操作简单快捷,实用性强。下面就让小编来带大家学习“怎么利用Python+OpenCV实现简易图像边缘轮廓检测”吧!本文所用的第三方库是Opencv4.3导入第三方库由于Opencv显示图像比较麻烦,与matlab或matplob不一致,考虑到基础薄弱可能对此库的图像显示机制不了解,在此我先定义一个img_show函数,目的是更方便的显示图像。此函数用于图像单通道不同阈值的操作,一般用来将图像进行二值化处理,二值化处理将有助于边缘检测的梯度计算。
其中pic为待处理图片,由于是对单通道处理,所以pic一般要转换为灰度图thresh为操作阈值,高于这个阈值的将根据不同的model统一成 0 或 maxvaluemodel为操作方法,一般只需要cv.THRESH_BINARY_INV和cv.THRESH_BINARY…THRESH_BINARY_INV 将大于thresh的设置为0…THRESH_BINARY 将大于thresh的设置为255该图像有两个返回值,第一个返回值为阈值,即thresh值,第二个为二值图像的矩阵此函数用于提取pic的轮廓点,pic为二值图像时,函数提取将更加精准model 为提取模式 一般用到cv.RETR_EXTERNAL和cv.RETR_TREE…Extrnal为以外层轮廓的方式进行提取…Tree则提取图像内外层所有轮廓method 为提取方法,有cv.CHAIN_APPROX_NONE和cv.CHAIN_APPROX_SIMPLE…NONE为以线的方式连接提取出来的轮廓…SIMPLE则压缩了线和斜边,只标记了轮廓的各个顶点此函数的返回值有两个,一个是边缘点(列表形式),一个是层次信息此段代码的意思是基于pic 此图像使用描述外轮廓的模式通过各个点链接的方式进行轮廓提取最终得到轮廓列表集合contours和层次关系hierarchy注:在contours里面有非常多的轮廓集合,比如contours[0]contours[1]contours[2]是三个轮廓,可能只有1是目标轮廓,其他均为噪声轮廓此函数用于在指定画布,用指定颜色粗细的线画出指定轮廓(索引判断)或所有轮廓(-1)画布:将轮廓点画在画布上,一般是代替去图片的copy图,不然会污染原图。轮免费云主机域名廓集合:上文中提到的contours,其中包含了目标轮廓和噪声轮廓的所有轮廓索引:选定轮廓集合中的某一轮廓,如果你知道目标轮廓的编号可以直接写,如果不知道就写-1,可以画出所有轮廓颜色: 元组形式,(255,0,0)为红色,以此类推粗细:轮廓的粗细 1~任意整数,太大会覆盖原图此函数用于将检测的函数进行矩阵点的查找图像:被检测的图像,一般是传入目标的轮廓,即contours[index],index为目标编号此函数会返回四个值:x,y,w,h其中x,y指的是该图像x轴上最小值和y轴最小值(有左上角为原点时),w,h跟别指的囊括图像所有的宽和高到此,相信大家对“怎么利用Python+OpenCV实现简易图像边缘轮廓检测”有了更深的了解,不妨来实际操作一番吧!这里是百云主机网站,更多相关内容可以进入相关频道进行查询,关注我们,继续学习!

相关推荐: JavaScript内存管理和GC算法实例分析

本文小编为大家详细介绍“JavaScript内存管理和GC算法实例分析”,内容详细,步骤清晰,细节处理妥当,希望这篇“JavaScript内存管理和GC算法实例分析”文章能帮助大家解决疑惑,下面跟着小编的思路慢慢深入,一起来学习新知识吧。JavaScript在…

免责声明:本站发布的图片视频文字,以转载和分享为主,文章观点不代表本站立场,本站不承担相关法律责任;如果涉及侵权请联系邮箱:360163164@qq.com举报,并提供相关证据,经查实将立刻删除涉嫌侵权内容。

(0)
打赏 微信扫一扫 微信扫一扫
上一篇 05/02 18:58
下一篇 05/02 18:58

相关推荐