当前位置: 首页 > news >正文

福田网站建设方案服务四川旅游攻略

福田网站建设方案服务,四川旅游攻略,婚纱外贸网站,网站代码怎么改轮廓#xff08;Contours#xff09;#xff0c;指的是有相同颜色或者密度#xff0c;连接所有连续点的一条曲线。检测轮廓的工作对形状分析和物体检测与识别都非常有用。 在轮廓检测之前#xff0c;首先要对图片进行二值化或者Canny边缘检测。在OpenCV中#xff0c;寻找… 轮廓Contours指的是有相同颜色或者密度连接所有连续点的一条曲线。检测轮廓的工作对形状分析和物体检测与识别都非常有用。 在轮廓检测之前首先要对图片进行二值化或者Canny边缘检测。在OpenCV中寻找的物体是白色的而背景必须是黑色的因此图片预处理时必须保证这一点。 cv2.findContours函数 Python版示例如下也可以参考【OpenCV-Python教程11、轮廓检测】【Contours : Getting Started】 contours, hierarchy cv2.findContours(thresh, cv2.RETR_TREE, cv2.CHAIN_APPROX_SIMPLE) 1. 完整例子 import cv2#读入图片 img cv2.imread(1.png)# 必须先转化成灰度图 gray cv2.cvtColor(img, cv2.COLOR_BGR2GRAY)# 二值化 ret, thresh cv2.threshold(gray, 127, 255, cv2.THRESH_BINAEY)# 寻找轮廓 contours, hierarchy cv2.findContours(thresh, cv2.RETR_TREE, cv2.CHAIN_APPROX_SIMPLE)# 画出轮廓-1,表示所有轮廓画笔颜色为(0, 255, 0)即Green粗细为3 cv2.drawContours(img, contours, -1, (0, 255, 0), 3)# 显示图片 cv2.namedWindow(Contours, cv2.NORMAL_WINDOW) cv2.imshow(Contours, img)# 等待键盘输入 cv2.waitKey(0) cv2.destroyAllWindows()123456789101112131415161718192021222324123456789101112131415161718192021222324 2. 参数解释 这里的findContours函数有三个参数 thresh - 要寻找轮廓的图片注意这里的轮廓会直接改变在thresh上记得备份cv2.RETR_TREE - 表示轮廓检索模式Contour retrieval mode为检索所有的轮廓且重组为一个有层次的嵌套轮廓。层次信息返回在hierarchy中。cv2.CHAIN_APPROX_SIMPLE - 表示轮廓近似方法Contour approximation method。SIMPLE可以这样理解假如一个矩形有1000个点但是现在只用四个角的点表示就行了即去掉冗余信息。 返回值也有两个contours 和 hierarchy 对contours的理解如下 print 找到 %d 个轮廓 %(len(contours)) print 第 0 个轮廓有 %d 个点 %(len(contours[0]))# 画出第0个轮廓 cv2.drawContours(img, contours, 0, (0, 255, 0), 3) cv2.imshow(first contours, img)# 画出第1个轮廓 cv2.drawContours(img, contours, 1, (0, 255, 0), 3) cv2.imshow(second contours, img)# 画出所有的轮廓 cv2.drawContours(img, contours, -1, (0, 255, 0), 3) cv2.imshow(all contours, img)12345678910111213141234567891011121314 对 hierarchy 的深究可以参考这里【Contours Hierarchy】 轮廓特征Contour Features 查找到轮廓以后我们可以得出轮廓的一些特征信息也可以在轮廓上做一些简单的操作参考Python教程【Contour Features】 1. 面积和周长示例 # 寻找轮廓 contours, hierarchy cv2.findContours(thresh, cv2.RETR_TREE, cv2.CHAIN_APPROX_SIMPLE)# 取第 0 个轮廓 cnt contours[0]# 轮廓面积 area cv2.contourArea(cnt)# 周长或者说弧长第二个参数的True表示该轮廓是否封闭 perimeter cv2.arcLength(cnt, True)12345678910111234567891011 2. 轮廓近似 轮廓近似Contour Approximation要理解概念先来看下面的三张图。第一张是找到的轮廓第二张近似的幅度很大忽略了很多的细节第三细节多一点. OpenCV中是用 cv2.approxPolyDP()函数来进行轮廓的近似的。见代码 # 假设取第30个轮廓为例 cnt contours[30]# 10%即0.1的精确度 epsilon 0.1 * cv2.arcLength(cnt, True) approx cv2.approxPolyDP(cnt, epsilon, True)# 这里是第二张10%的精确度 cv2.imshow(10% approximation, approx)123456789123456789 同理第三张可以用1%的精确度来得到。 3. 计算凸包 涉及凸多面体和凹多面体的概念不多解释。如下图本来是一个手掌的形状现在用最小的凸多面体把它包起来。其中凸进去Bulge Inside的部分称为凸包缺陷Convexity Defects即箭头处即偏导的局部最大值处。 函数调用以后用到再来细究吧 hull cv2.convexHull(cnt) cv2.imshow(hull, hull)1212 4. 矩形边框 矩形边框Bounding Rectangle是说用一个最小的矩形把找到的形状包起来。还有一个带旋转的矩形面积会更小效果见下图 上代码 # 用绿色(0, 255, 0)来画出最小的矩形框架 x, y, w, h cv2.boundingRect(cnt) cv2.rectangle(img, (x, y), (xw, yh), (0, 255, 0), 2)# 用红色表示有旋转角度的矩形框架 rect cv2.minAreaRect(cnt) box cv2.cv.BoxPoints(rect) box np.int0(box) img cv2.drawContours(img, [box], 0, (0, 0, 255), 2)123456789123456789 PS其他的形状如 封闭的圆形椭圆直线 等例子见这里【Contour Features】原理差不多不再赘述。
http://www.yutouwan.com/news/390841/

相关文章:

  • 用什么开源框架做网站网站要用什么软件做
  • 宁波营销型网站建设首选客户管理系统app下载
  • 晋城网站建设公司网站如何做301
  • 网站建站业务郑州网络营销推广公司信息
  • 网站地区词优化做个网站怎样做的
  • 怎么做招聘网站的调研wordpress漏洞扫描器
  • 网页设计与网站建设 入门必练建e网全景
  • 毕设网站开发什么题目好wordpress子网页
  • 网站的不足之处深圳正规燃气公司一览表
  • 不懂网站建设.怎么销售网络工程师简历
  • wordpress标签页无效链接seo刷排名软件
  • 专门做包包的网站办公系统软件oa
  • 有了域名如何建网站营销型网站开发推广
  • 网站页面关键字在哪里北京已经开始二次感染了
  • 网站建设技术需求wordpress电商ar
  • 温州专业网站制作公司有什么兼职做设计的网站
  • 企业网站的设计风格高校网站建设前言
  • 网站开发顶岗报告房产网站推广
  • wordpress多站点site id郑州市网络公司
  • 网站开发常用jquery插件总结(四)验证插件validation人类命运共同体
  • 安徽门户网站建设代理记账公司排名大全
  • 网站建设维护宣传广州天河区建设网站
  • 网站建设视频lcdr可不可做网站
  • 用织梦做网站需不需授权在线设计海报的网站
  • 建立网站成本最低网站栏目结构
  • 有关网站建设的书Wordpress编辑工具
  • 制作网页模版宁波超值关键词优化
  • 做网站价格和配置企业网站推广的策略有哪些
  • 微信公众号开发是否需要建立网站福州最好的网站设计服务公司
  • 做网站生意不赚钱源码之家