怎么用python opencv画外接矩形框
发表于:2025-02-23 作者:千家信息网编辑
千家信息网最后更新 2025年02月23日,这篇文章主要介绍"怎么用python opencv画外接矩形框",在日常操作中,相信很多人在怎么用python opencv画外接矩形框问题上存在疑惑,小编查阅了各式资料,整理出简单好用的操作方法,希
千家信息网最后更新 2025年02月23日怎么用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安全错误
数据库的锁怎样保障安全
久广互联网科技
常熟提供网络技术服务价格
隆力奇软件开发怎么样
hp服务器阵列配置保护
思维中国网络技术有限公司
松江区企业软件开发服务
征途怀旧版服务器
1155服务器cpu
加强网络安全管理工作总结
软件开发公司分录
梦幻诛仙服务器是互通的么
网络安全方面的发言表态
战地1怎么管理服务器
BREENO语音软件开发
网络安全监察的专业
网络安全色系
网络安全广告图片
金山文档自动储存在自己服务器
嘉昆太网络安全协定
软件开发 画图工具
cn2网络技术交流
华硕x99能上服务器内存
金华盘古网络技术有限公司
安宁服务器回收公司电话
龙华区无源网络技术开发推荐厂家
怀柔区品牌软件开发设计价格走势
服务器串口连接没反应
增强网络安全方面
网络安全色系
浪潮服务器是纯国产