Python通过OpenCV的findContours获取轮廓并切割实例

作者:loovelj 时间:2022-12-11 22:33:05 

1 获取轮廓

OpenCV2获取轮廓主要是用cv2.findContours


import numpy as np
import cv2

im = cv2.imread('test.jpg')
imgray = cv2.cvtColor(im,cv2.COLOR_BGR2GRAY)
ret,thresh = cv2.threshold(imgray,127,255,0)
image, contours, hierarchy = cv2.findContours(thresh,cv2.RETR_TREE,cv2.CHAIN_APPROX_SIMPLE)

其中,findContours的第二个函数很重要,主要分为 cv2.RETR_LIST, cv2.RETR_TREE, cv2.RETR_CCOMP, cv2.RETR_EXTERNAL,具体含义可参考官方文档

2 画出轮廓

为了看到自己画了哪些轮廓,可以使用 cv2.boundingRect()函数获取轮廓的范围,即左上角原点,以及他的高和宽。然后用cv2.rectangle()方法画出矩形轮廓


for i in range(0,len(contours)):
 x, y, w, h = cv2.boundingRect(contours[i])  
 cv2.rectangle(image, (x,y), (x+w,y+h), (153,153,0), 5)

3切割轮廓

轮廓的切割主要是通过数组切片实现的,不过这里有一个小技巧:就是图片切割的w,h是宽和高,而数组讲的是行(row)和列(column)

所以,在切割图片时,数组的高和宽是反过来写的


 newimage=image[y+2:y+h-2,x+2:x+w-2] # 先用y确定高,再用x确定宽
     nrootdir=("E:/cut_image/")
     if not os.path.isdir(nrootdir):
       os.makedirs(nrootdir)
     cv2.imwrite( nrootdir+str(i)+".jpg",newimage)
     print (i)

这样就可以把确定的轮廓都切割出来了。

总结

python+opencv轮廓检测代码解析

OpenCV-Python实现轮廓检测实例分析

如有不足之处,欢迎留言指出。感谢朋友们对本站的支持!

来源:http://blog.csdn.net/loovelj/article/details/78739790

标签:python,opencv,findcontours
0
投稿

猜你喜欢

  • CSS系统默认颜色

    2009-01-04 16:53:00
  • Django unittest 设置跳过某些case的方法

    2022-02-28 21:46:13
  • go语言题解LeetCode1275找出井字棋的获胜者示例

    2023-07-22 12:30:41
  • Oracle 数据库自动存储管理-安装配置

    2009-05-24 19:15:00
  • 基于python opencv单目相机标定的示例代码

    2022-10-10 23:42:37
  • pycharm如何设置自动生成作者信息

    2021-01-21 22:20:58
  • 网马解密大讲堂——网马解密中级篇(Freshow工具使用方法)

    2009-09-16 15:09:00
  • 在ASP中如何使用类class

    2007-09-16 17:17:00
  • 升级SQL Server 2008数据库引擎

    2009-03-25 12:58:00
  • Python实现批量识别图片文字并存为Excel

    2021-07-28 06:34:23
  • 浏览器中的内存泄露

    2008-05-03 16:53:00
  • 深入透析样式表滤镜(下)

    2011-06-14 09:49:19
  • Python实现12种降维算法的示例代码

    2023-03-17 14:04:21
  • Python 多张图片合并成一个pdf的参考示例

    2021-10-15 23:32:45
  • Python代码块批量添加Tab缩进的方法

    2022-10-10 16:41:39
  • 常用CSS命名参考

    2008-03-10 11:38:00
  • mssql2005,2008导出数据字典实现方法

    2023-07-23 19:11:30
  • python字典一键多值实例代码分享

    2021-07-08 10:47:52
  • python 从远程服务器下载日志文件的程序

    2021-03-06 01:39:15
  • python绘制三维图的详细新手教程

    2022-03-19 14:23:52
  • asp之家 网络编程 m.aspxhome.com