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
投稿

猜你喜欢

  • 详解Mysql查询条件中字符串尾部有空格也能匹配上的问题

    2024-01-13 11:06:50
  • 关于Python中异常(Exception)的汇总

    2022-11-29 05:42:15
  • PHP生成sitemap.xml地图函数

    2024-06-05 09:23:16
  • 使用Python写一个贪吃蛇游戏实例代码

    2023-07-05 18:25:02
  • sql server利用不同语种语言显示报错错误消息的方法示例

    2024-01-23 17:40:39
  • 通过屏蔽IP来防止采集

    2007-08-19 15:28:00
  • 漫谈前端开发中的团队合作

    2009-02-05 21:02:00
  • php基础字符串与数组知识点讲解

    2023-05-25 08:28:14
  • vue实现在v-html的html字符串中绑定事件

    2023-07-02 16:44:08
  • 基于js实现抽红包并分配代码实例

    2024-04-16 09:30:58
  • Django框架设置cookies与获取cookies操作详解

    2021-07-24 09:10:49
  • python非单一.py文件用Pyinstaller打包发布成exe

    2021-12-19 00:40:05
  • python使用numpy中的size()函数实例用法详解

    2023-11-19 10:18:45
  • Python实现批量读取word中表格信息的方法

    2023-03-25 19:02:05
  • Python将列表数据写入文件(txt, csv,excel)

    2023-04-09 13:24:49
  • Oracle 9i 数据库异常关闭后的启动

    2010-07-20 12:49:00
  • JS限制textarea字数

    2009-09-28 14:41:00
  • python借助ChatGPT读取.env实现文件配置隔离保障私有数据安全

    2022-12-26 17:54:13
  • Python SQLite3简介

    2023-05-29 11:26:01
  • Python面向对象之内置函数相关知识总结

    2022-06-05 10:30:24
  • asp之家 网络编程 m.aspxhome.com