image = cv2.imread(pic)

opencv读image,读出来是BRG

gray = cv2.cvtColor(image, cv2.COLOR_BGR2RGB)

将BGR转换为RGB

gray = cv2.GaussianBlur(gray, (11, 11), 0)

高斯模糊,(11, 11)是ksize高斯内核大小。内核越大模糊效果越好,越平滑,越可以把不需要的边缘去除,也就是去噪。 ksize.width和ksize.height可以不同,但​​它们都必须为正数和奇数,也可以为零,然后根据sigma计算得出。

edged = cv2.Canny(gray, 50, 300)
  • 应用双阈值确定边缘

完成上述步骤后,图像内的强边缘已经在当前获取的边缘图像内。但是,一些虚边缘可能也在边缘图像内。这些虚边缘可能是真实图像产生的,也可能是由于噪声所产生的。对于后者,必须将其剔除。
设置两个阈值,其中一个为高阈值 maxVal,另一个为低阈值 minVal。根据当前边缘像素的梯度值(指的是梯度幅度,下同)与这两个阈值之间的关系,判断边缘的属性。具体步骤为:
(1)如果当前边缘像素的梯度值大于或等于 maxVal,则将当前边缘像素标记为强边缘。
(2)如果当前边缘像素的梯度值介于 maxVal 与 minVal 之间,则将当前边缘像素标记为虚
边缘(需要保留)。
(3)如果当前边缘像素的梯度值小于或等于 minVal,则抑制当前边缘像素。
在上述过程中,我们得到了虚边缘,需要对其做进一步处理。一般通过判断虚边缘与强边缘是否连接,来确定虚边缘到底属于哪种情况。通常情况下,如果一个虚边缘:

  • 与强边缘连接,则将该边缘处理为边缘。
  • 与强边缘无连接,则该边缘为弱边缘,将其抑制。

r1=cv2.Canny(o,128,200)的效果如下

r2=cv2.Canny(o,32,128)的效果 如下

在我们的案例中,应将max阈值放大,以过滤掉不需要的边缘。

关于阈值,还有自适应的阈值,可以研究一下。

edged = cv2.dilate(edged, None, iterations=1)
edged = cv2.erode(edged, None, iterations=1)

开操作,闭操作,在我们的案例中,好像就是把边缘变细了一点。

cnts, heir = cv2.findContours(edged.copy(), cv2.RETR_EXTERNAL, cv2.CHAIN_APPROX_SIMPLE)

寻边

img = cv2.drawContours(b, cnts, -1, (193,182,255), 2)

画出来

for c in cnts:(x, y, w, h) = cv2.boundingRect(c)cv2.rectangle(b, (x, y), (x + w, y + h), (0, 255, 0), 2)

根据边缘画个框

opencv检测尺寸+部署时踩过的坑相关推荐

  1. arcgis python 二次开发_我在部署ArcGIS API for Python时踩到的坑

    ArcGIS API for Python相比于其他ESRI产品,还是很年轻.我在部署时踩到了坑,网上也找不到解决方法,很是煞风景,也很打击学习的积极性. 今天回顾一下,做个总结吧.一方面自己备忘,另 ...

  2. 用vant框架做H5时踩过的坑(下拉刷新、上拉加载等)

    用vant框架做H5时踩过的坑 1. 页面在手机端不能上下滑动,在PC端浏览器正常滑动 说明:在设置了overflow:auto;属性的前提下,H5页面在PC端浏览器里展示可以上下滑动,在ios上可正 ...

  3. 记录戴尔t640切换集/独显及安装驱动时踩过的坑

    记录戴尔t640切换集/独显及安装驱动时踩过的坑 写在前面 Nvidia驱动安装篇 服务器改配置篇 写在前面 先大体说一下机器:我用的是一台dell的t640塔式服务器,ubuntu16.04,用来做 ...

  4. VCSA6.7-VCSA7.0部署经常踩中的坑【 两个 】

    VCSA6.7-VCSA7.0部署经常踩中的坑[ 俩! ] 坑1:vcsa[安装80%报错]·无法进入第二阶段 vcsa安装到达80%后,无法进入第二阶段,通过"IP:5480"进 ...

  5. Redis 集群部署及踩过的坑

    本文目标 要在单台机器上搭建Redis集群,方式是通过不同的TCP端口启动多个实例,然后组成集群,同时记录在搭建过程中踩过的坑. 安装准备 centos版本:6.7 redis版本:3.2.3 安装方 ...

  6. 我在Windows系统搭建python的Hadoop+Spark环境时踩过的坑

    本人是一个最近正在研究链路预测的小白,读论文的时候有幸从导师那里获得了论文相关的算法代码,可是论文里面涉及到了spark和Hadoop,需要搭建环境,于是这只无脑的小白成功踏入了搭建Hadoop+sp ...

  7. php面试的作品是看视频做吗,谈谈我在PHP面试时踩过的坑 找工作必看

    1.get,post 的区别 显示有区别 get方法是将字符串拼接在地址栏后面可以看见 而post方法看不见 传递的大小有区别 具体大小和浏览器有关系,ie浏览器是2k其他浏览器的最大值可能不同,但是 ...

  8. 谈谈我在PHP面试时踩过的坑 找工作必看

    1.get,post 的区别 显示有区别 get方法是将字符串拼接在地址栏后面可以看见 而post方法看不见 传递的大小有区别 具体大小和浏览器有关系,ie浏览器是2k其他浏览器的最大值可能不同,但是 ...

  9. 【小白自学Python时踩的那些坑,你值得拥有】

    其实坑多的很,但作为刚自学Python的小白,相当于一个新生小孩,对于新事物不知道从哪一步下手,然后手忙脚乱的乱来一通,直接从入门到放弃,这篇文章主要就是针对Python入门最!最!最!基础也是最容易 ...

最新文章

  1. 高德亿级流量接入层服务的演化之路
  2. python开发微信小程序-微信小程序开发:python+sanic 实现小程序登录注册
  3. Hadoop的mapper输出中key和value之间的分隔符
  4. JavaScript学习笔记(3)
  5. 毕业生的商业软件开发之路 --- C#基本语法-C#代码模块逻辑框架
  6. Java Post 数据请求和接收
  7. SpringBoot 包含处理
  8. Oracle创建pfile spfile 文件及其恢复
  9. C语言 BMP24位变单色,怎么将24位色BMP图片改为单色或16色?(2)
  10. django 模板mysql_59 Django基础三件套 , 模板{{}}语言 , 程序连mysql Django项目app Django中ORM的使用...
  11. python-标识符与变量-标识符的命名规范
  12. 欧洲互联网将“死于”版权法?
  13. 批量删除Cookie(实用)
  14. 老生长谈的$.extend()方法
  15. springBoot笔记2
  16. 黑马程序员Git教程笔记
  17. EXCEL工作表保护密码忘记,撤销保护攻略
  18. Maven项目 整合 tomcat插件== tomcat7:run
  19. 基于WebService实现设备状态监控Demo(含源码)
  20. Codeforces 1076 - 题集

热门文章

  1. 【视频版】《Easy搞定Golang设计模式》
  2. 2020中国数字城市大盘点
  3. Python 隔离沙箱 virtualenv
  4. 招标代理服务收费标准(计价格〔2002〕1980号)
  5. 智慧文旅解决方案-最新全套合集
  6. 《java虚拟机规范SE7》整理——第四章:Class文件格式
  7. SAR chirp scaling(CSA)算法仿真
  8. 计算机毕设之交通卡充值管理系统
  9. 九宫格手势密码、指纹密码
  10. 物业管理软件的主要功能