Python通过OpenCV的findContours获取轮廓并切割实例
作者:loovelj 发布时间:2022-12-11 22:33:05
标签:python,opencv,findcontours
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


猜你喜欢
- 引言随着我被拉入一个新的群聊“生产环境死锁问题排查解决”,打破了午后的悠然惬意,点开群聊秒送了一个6
- 当数据库的数据量读写频繁的时候,我们就要考虑把数据库的读写分开,以提高数据库的使用效率,(当然还有其他用处比如,备份数据),这个时候我们就要
- 1. 原理2014年的一篇文章,开创cnn用到文本分类的先河。Convolutional Neural Networks for Sente
- 听说安全地断开Connection连接的记录集可以提高ASP的运行速度,请问如何实现?很多人会将一个Connection对象存储在Appli
- 解决办法: 1.新建一个同名的数据库(数据文件与原来的要一致) 2.再停掉sql server(注意不要分离数据库) 3.用原数据库的数据文
- 在网页制作中,表单中的对象总是给人一种单调与沉闷的感觉,比如说按钮、文本框等,它们一成不变的模样与颜色
- 这篇文章主要介绍了Python使用configparser库读取配置文件,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考
- 前些日子有网友问:将ASP纪录集输出成n列的的表格形式显示的方法?现在写了一个,方便大家使用。'定义变量 Dim cn,r
- 代码如下:--获取当前时间 Select getdate() --获取当前年月日 YY代表年,MM代表月,DD代表日,hh代表时
- 一、进程介绍进程:正在执行的程序,由程序、数据和进程控制块组成,是正在执行的程序,程序的一次执行过程,是资源调度的基本单位。程序:没有执行的
- 用css属性选择器可以有选择性地对链接样式进行控制,如让所有的外部链接都加一个小图标来标识其是一外部链接。但用css有弊端: 1、只支持Fi
- 本文实例讲述了python实现在控制台输入密码不显示的方法。分享给大家供大家参考。具体实现方法如下:import console;names
- kaggle是一个为开发商和数据科学家提供举办机器学习竞赛、托管数据库、编写和分享代码的平台,在这上面有非常多的好项目、好资源可供机器学习、
- 简介Elasticsearch 是一个分布式可扩展的实时搜索和分析引擎,一个建立在全文搜索引擎 Apache Lucene&trad
- import "strconv"strconv 包实现了基本数据类型和其字符串表示的相互转换。string与int类型转
- 如下所示:原因1:版本不对,如用环境变量设置的python3.7路径,那么用的就是3.7的pip.exe安装了包。却用的是2.7的pytho
- 一 介绍Python上有一个非常著名的HTTP库——requests,相信大家都听说过,用过的人都说非常爽!现在requests库的作者又发
- 工作需要开始学Perl,下载个Window版(5.16)的: 下载链接 http://www.activestate.com/activep
- Logminer是每个Dba都应熟悉的工具,当一天由于用户的误操作你需要做不完全的恢复时,由于你无法确定这个操作是哪个时间做的,所以这对你的
- 前阵子刚完成一个B/S架构的学校办公系统,体会就是表太多,文件太多,而每个文件中类似的操作(代码)也太多了,例如学生信息和教师信息操作,st