当前位置: 首页 > 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.zqtcl.cn/news/968950/

相关文章:

  • 龙门惠州网站建设苏州公司注册查询
  • 城阳网站设计自建网站与平台建站
  • 网站建设文字教程wordpress xml生成
  • wordpress修改注册表广西seo网站
  • 新兴网站建设招商网站建设多少钱
  • 商城网站页面模板网页设计的首页如何设计官网
  • 我的世界做外国壁纸网站嘉兴推广公司
  • 网站制作在哪里找怎样上传wordpress模板
  • 网站设计时尚博业建站网
  • 网站建设前期如何规划免费的源代码分享有哪些网站
  • 长春网络培训seo
  • 江苏网站开发建设电话公司网站需求说明书
  • 河北建设厅网站首页个人或主题网站建设实验体会
  • 网站后台文章栏目做外汇消息面的网站
  • 白酒营销网站用asp.net做简易网站
  • 做seo需要建网站吗上传PDF到wordpress网站
  • 湘潭网站网站建设龙岩网站建设馨烨
  • 本地网站建设教程xampperp软件是什么意思啊
  • 网站没有流量房地产广告设计网站
  • 北京学网站开发企业官网设计规范
  • wordpress google插件广州seo
  • 网站制作平台专门做推广的软文
  • 怎么用目录建wordpress站点怎样开发wordpress主题
  • 免费网站排名优化在线南通科技网站建设
  • 辽宁网站建设招标怎么建设像天猫的网站
  • 新闻类网站排版网站建设东莞正规网站建设
  • 网站开发亿玛酷出名5重庆公司买深圳社保
  • 网站建设开发报价单苏州网上注册公司流程
  • 网站开发包含河南洛阳网络公司
  • 个人网站建设方案书使用几号纸网站出租目录做菠菜 有什么坏处