怎么用python opencv画外接矩形框
发表于:2025-01-19 作者:千家信息网编辑
千家信息网最后更新 2025年01月19日,这篇文章主要介绍"怎么用python opencv画外接矩形框",在日常操作中,相信很多人在怎么用python opencv画外接矩形框问题上存在疑惑,小编查阅了各式资料,整理出简单好用的操作方法,希
千家信息网最后更新 2025年01月19日怎么用python opencv画外接矩形框
这篇文章主要介绍"怎么用python opencv画外接矩形框",在日常操作中,相信很多人在怎么用python opencv画外接矩形框问题上存在疑惑,小编查阅了各式资料,整理出简单好用的操作方法,希望对大家解答"怎么用python opencv画外接矩形框"的疑惑有所帮助!接下来,请跟着小编一起来学习吧!
画外接矩形框,可以画成一个最大的,也可以分别画。
# -*- coding: utf-8 -*- import cv2 image = cv2.imread('G:/110w2/mask_tif4/00.png') print(image.shape)print(image.shape[0]) # hprint(image.shape[1]) # w# 图像转灰度图img = cv2.cvtColor(image, cv2.COLOR_BGR2GRAY)#cv2.imwrite('G:/110w2/mask_tif4/02.png', img)# 图像转二值图ret, thresh = cv2.threshold(img, 2, 255, cv2.THRESH_BINARY_INV)contours, hierarchy = cv2.findContours(thresh, cv2.RETR_TREE, cv2.CHAIN_APPROX_SIMPLE)x1 = []y1 = []x2 = []y2 = []for c in contours: # 找到边界坐标 x, y, w, h = cv2.boundingRect(c) # 计算点集最外面的矩形边界 print(x, y, w, h) # 因为这里面包含了,图像本身那个最大的框,所以用了if,来剔除那个图像本身的值。 if x != 0 and y != 0 and w != image.shape[1] and h != image.shape[0]: # 左上角坐标和右下角坐标 # 如果执行里面的这个画框,就是分别来画的, cv2.rectangle(image, (x, y), (x + w, y + h), (0, 255, 0), 1) x1.append(x) y1.append(y) x2.append(x + w) y2.append(y + h)x11 = min(x1)y11 = min(y1)x22 = max(x2)y22 = max(y2) # 这个是画出所有目标,都可以包含在内的,一个外接矩形框。#cv2.rectangle(image, (x11, y11), (x22, y22), (0, 0, 255), 1) #cv2.imshow("img", image)cv2.imwrite('G:/110w2/mask_tif4/0_001.png', image)cv2.waitKey(0) # 功能:cv2.findContours()函数来查找检测物体的轮廓。#参数:# 参数1:寻找轮廓的图像,接收的参数为二值图,即黑白的(不是灰度图),所以读取的图像要先转成灰度的,再转成二值图# 参数2: 轮廓的检索模式,有四种。# cv2.RETR_EXTERNAL 表示只检测外轮廓;# cv2.RETR_LIST 检测的轮廓不建立等级关系;# cv2.RETR_CCOMP 建立两个等级的轮廓,上面的一层为外边界,里面的一层为内孔的边界信息。如果内孔内还有一个连通物体,这个物体的边界也在顶层。# cv2.RETR_TREE 建立一个等级树结构的轮廓。## 参数3: 轮廓的近似办法.# cv2.CHAIN_APPROX_NONE 存储所有的轮廓点,相邻的两个点的像素位置差不超过1,即max(abs(x1-x2),abs(y2-y1))==1# cv2.CHAIN_APPROX_SIMPLE 压缩水平方向,垂直方向,对角线方向的元素,只保留该方向的终点坐标,例如一个矩形轮廓只需4个点来保存轮廓信息# cv2.CHAIN_APPROX_TC89_L1,CV_CHAIN_APPROX_TC89_KCOS 使用teh-Chinl chain 近似算法# 注:opencv2返回两个值:contours:hierarchy。opencv3会返回三个值,分别是img, countours, hierarchy##返回值#cv2.findContours()函数返回两个值,一个是轮廓本身,还有一个是每条轮廓对应的属性。
到此,关于"怎么用python opencv画外接矩形框"的学习就结束了,希望能够解决大家的疑惑。理论与实践的搭配能更好的帮助大家学习,快去试试吧!若想继续学习更多相关知识,请继续关注网站,小编会继续努力为大家带来更多实用的文章!
轮廓
矩形
图像
参数
边界
两个
坐标
方向
学习
灰度
物体
等级
检测
最大
信息
函数
更多
面的
帮助
接下来
数据库的安全要保护哪些东西
数据库安全各自的含义是什么
生产安全数据库录入
数据库的安全性及管理
数据库安全策略包含哪些
海淀数据库安全审计系统
建立农村房屋安全信息数据库
易用的数据库客户端支持安全管理
连接数据库失败ssl安全错误
数据库的锁怎样保障安全
k2没有虚拟服务器
延安市软件开发推荐
出数据库表外
软件开发 全套 模板
与谷歌服务器通信时
视频网站需要数据库吗
服务器油瓶漫画的启示作文
腾讯云服务器部署群晖
网络安全的预防措施有哪些
网络安全征集活动绘画
厦门机器人rpa软件开发
sql 临时数据库
软件开发开发费会计处理
净网2021 网络安全
如何表扬网络技术人员
市和为顺网络技术
长沙会务无纸化软件开发
数据库技术与应用期末复习
陕西网络安全工程师考试
中小学生网络安全工作
重庆 服务器托管
重型网络技术设计
4g网卡如何做服务器
vox服务器
计算机数据库操作
不属于软件开发阶段的工作内容
委托软件开发服务发票如何入账
易语言数据库操作支持用法
eth矿池中转服务器搭建
逃离塔科夫哪个是日本服务器