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

专业做ea的网站在线销售型网站

专业做ea的网站,在线销售型网站,网站定制开发建设,中国建筑设计研究院有限公司OpenCV入门(二十)快速学会OpenCV 19 对象测量1.对象测量2.多边形拟合3.计算对象中心作者:Xiou 1.对象测量 opencv 中对象测量包括: 如面积,周长,质心,边界框等。 弧长与面积测量; …

OpenCV入门(二十)快速学会OpenCV 19 对象测量

  • 1.对象测量
  • 2.多边形拟合
  • 3.计算对象中心

作者:Xiou

1.对象测量

opencv 中对象测量包括:
如面积,周长,质心,边界框等。
弧长与面积测量;
多边形拟合;
获取轮廓的多边形拟合结果。

python-opencv提供的方法:

cv2.moments() 用来计算图像中的中心矩(最高到三阶),

cv2.HuMoments() 用于由中心矩计算Hu矩,同时配合函数cv2.contourArea()函数计算轮廓面积,和cv2.arcLength()来计算轮廓或曲线长度

cv.approxPolyDP(多边形逼近)
-contour
-epsilon 越小越折 线越逼近真实形状
-close 是否为闭合区域

函数cv2.boundingRect返回四个参数(x,y)为矩形左上角的坐标,(w,h)是矩形的宽和高。 函数cv2.rectangle是绘制矩形函数

函数cv2.minAreaRect返回的是一个 Box2D 结构,
其中包含 :矩形左上角角点的坐标(x,y),矩形的宽和高(w,h),以及旋转角度。
但是要绘制这个矩形需要矩形的 4 个角点,可以通过函数 cv2.boxPoints() 获得,最后绘制得到旋转边界矩形。

函数cv2.minEnclosingCircle可以帮我们找到一个对象的外切圆。它是所有能够完全包括对象的圆中面积最小的一个。

函数cv2.fitEllipse返回值其实就是旋转边界矩形的内切圆。

几何矩计算

一幅M×N的数字图像ƒ(i,j),其p+q阶 几何矩mpq 和 中心矩 μpq为:

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

2.多边形拟合

步骤:

(1)读取图片;
(2)转换成灰度图;
(3)二值化;
(4)轮廓检测;
(5)计算轮廓周长;
(6)多边形拟合;

格式:

cv2.approxPolyDP(curve, epsilon, closed, approxCurve=None)

参数:

curve: 输入轮廓;
epsilon: 逼近曲率, 越小表示相似逼近越厉害;
closed: 是否闭合。

代码实例:

import cv2
from matplotlib import pyplot as plt# 读取图片
image = cv2.imread("logo.png")
image_gray = cv2.cvtColor(image, cv2.COLOR_BGR2GRAY)# 二值化
ret, thresh = cv2.threshold(image_gray, 127, 255, cv2.THRESH_OTSU)# 计算轮廓
contours, hierarchy = cv2.findContours(thresh, cv2.RETR_TREE, cv2.CHAIN_APPROX_NONE)# 轮廓近似
perimeter = cv2.arcLength(contours[0], True)
approx = cv2.approxPolyDP(contours[0], perimeter * 0.1, True)# 绘制轮廓
result1 = cv2.drawContours(image.copy(), contours, 0, (0, 0, 255), 2)
result2 = cv2.drawContours(image.copy(), [approx], -1, (0, 0, 255), 2)# 图片展示
f, ax = plt.subplots(1, 2, figsize=(12, 8))# 子图
ax[0].imshow(cv2.cvtColor(result1, cv2.COLOR_BGR2RGB))
ax[1].imshow(cv2.cvtColor(result2, cv2.COLOR_BGR2RGB))# 标题
ax[0].set_title("contour")
ax[1].set_title("approx")plt.show()

输出结果:

在这里插入图片描述

3.计算对象中心

cv2.moments()可以帮助我们得到轮距, 从而进一步计算图片对象的中心。

cv2.moments(array, binaryImage=None)

参数:
array: 轮廓;
binaryImage: 是否把 array 内的非零值都处理为 1, 默认为 None。

代码实例:

import numpy as np
import cv2# 读取图片
image = cv2.imread("logo.png")
image_gray = cv2.cvtColor(image, cv2.COLOR_BGR2GRAY)# 二值化
ret, thresh = cv2.threshold(image_gray, 0, 255, cv2.THRESH_OTSU)# 获取轮廓
contours, hierarchy = cv2.findContours(thresh, cv2.RETR_EXTERNAL, cv2.CHAIN_APPROX_SIMPLE)# 遍历每个轮廓
for i, contour in enumerate(contours):# 面积area = cv2.contourArea(contour)# 外接矩形x, y, w, h = cv2.boundingRect(contour)# 获取论距mm = cv2.moments(contour)print(mm, type(mm))  # 调试输出 (字典类型)# 获取中心cx = mm["m10"] / mm["m00"]cy = mm["m01"] / mm["m00"]# 获取cv2.circle(image, (np.int(cx), np.int(cy)), 3, (0, 255, 255), -1)cv2.rectangle(image, (x, y), (x + w, y + h), (0, 0, 255), 2)# 图片展示
cv2.imshow("result", image)
cv2.waitKey(0)
cv2.destroyAllWindows()# 保存图片
cv2.imwrite("result1.jpg", image)

输出结果:

在这里插入图片描述

http://www.yayakq.cn/news/994224/

相关文章:

  • 怎么去创立一个网站地方网站全网营销
  • 做网站后付款辽宁建设工程信息网项目经理变更
  • 那些市区做网站群网站设计的一般步骤是什么?
  • 网站一直百度上搜不到是怎么回事啊专业制作网站
  • 长沙做一个网站要多少钱邢台专业网站建设费用
  • 一个工厂的网站建设wordpress 下一页 模板
  • 实搜网站建设通过备案号查网站
  • 重庆最大的网站制作公司最新新闻有哪些
  • 用公司的信息做网站违法吗博文阅读网站建设
  • 化妆品网站建设策划方案怎样做婚庆网站
  • wordpress腾讯地图插件珠海seo海网站建设
  • 克拉玛依网站建设公司网站整合建设方案
  • iis建立好网站 怎么打开闵行区企业服务平台
  • 传统网站设计潭州学院wordpress
  • 建设银行成都 招聘网站全国二级建造师查询网站
  • 南京网站建设 个人有什么网站可以做微信支付宝支付
  • 朝阳网站建设襄阳宜城网站建设
  • 创建wordpress网站WordPress禁用邮件注册
  • 深圳外贸建站网络推广价格火狐浏览器网页版
  • 云南昆明网站建设沈阳男科医院十大排名
  • 网站设计语言有哪些一个网站的年维护费
  • 网站建设后台关键词优化工具有哪些
  • 做问卷调查赚钱好的21个网站临淄区建设局网站
  • 网站框架搭建设计wordpress主题首页问题
  • 承接php网站建设网站开发部门工作职责
  • 网站推广描述wordpress做小说
  • 个人备案能做公司网站吗免费制作一个自己的网站
  • 做电影网站挣钱网站管理后台下载
  • 中山精品网站建设策划视频模板免费
  • 网站开发中遇到的技术问题网站建设行业如何