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

网站开发的产品用什么形容词形容东莞网站建设网站排名优化

网站开发的产品用什么形容词形容,东莞网站建设网站排名优化,百度站长工具seo综合查询,北京企业网站开发公司哪家好OpenCV — 图像预处理(七) 文章目录 OpenCV --- 图像预处理(七)十七,图像轮廓特征查找17.1 外接矩形17.2 最小外接矩形17.3 最小外接圆 十七,图像轮廓特征查找 图像轮廓特征查找其实就是他的外接轮廓。应用…

OpenCV — 图像预处理(七)


文章目录

  • OpenCV --- 图像预处理(七)
  • 十七,图像轮廓特征查找
    • 17.1 外接矩形
    • 17.2 最小外接矩形
    • 17.3 最小外接圆


十七,图像轮廓特征查找

  • 图像轮廓特征查找其实就是他的外接轮廓。
  • 应用:
    • 图像分割
    • 形状分析
    • 物体检测与识别
  • 根据轮廓点进行,所以要先找到轮廓。
    • 先灰度化、二值化。目标物体白色,非目标物体黑色,选择合适的儿值化方式。
  • 有了轮廓点就可以找到最上、最下、最左、最右的四个坐标, X m i n 、 X m a x 、 Y m i n 、 Y m a x X_{min}、X_{max}、Y_{min}、Y_{max} XminXmaxYminYmax。就可以绘制出矩形。

17.1 外接矩形

boundingRect(轮廓点)
num = cv.imread('txycl/images/num.png')
# 灰度图
gray = cv.cvtColor(num, cv.COLOR_BGR2GRAY)
# 二值化处理
_,binary = cv.threshold(gray, 127, 255, cv.THRESH_OTSU+cv.THRESH_BINARY_INV)
# 查找轮廓
contours, hierarchy = cv.findContours(binary, cv.RETR_EXTERNAL, cv.CHAIN_APPROX_SIMPLE)
# 绘制轮廓
cv.drawContours(num, contours, -1, (0, 0, 255), 2)
cv.imshow('num', num)
# cv.waitKey(0)
# cv.destroyAllWindows()
# 外接矩形x,y,w,h = cv.boundingRect(contours[0])轮廓点
for cnt in contours:x, y, w, h = cv.boundingRect(cnt)cv.rectangle(num, (x, y), (x + w, y + h), (0, 255, 0), 2)# 显示效果
cv.imshow('num2', num)
cv.waitKey(0)
cv.destroyAllWindows()

在这里插入图片描述

17.2 最小外接矩形

  • 最小外接矩形就是在外接矩形的基础上基于凸包进行旋转卡壳法
  • 假如凸包如下
    在这里插入图片描述
  • 以其中的一条边为起始边,然后按照逆时针方向计算每个凸包点与起始边的距离,并将距离最大的点记录下来。
    在这里插入图片描述
  • 以a、b两点为起始边,并计算出e点离起始边最远,那么e到起始边的距离就是一个矩形的高度,因此我们只需要再找出矩形的宽度即可。对于矩形的最右边,以向量 a b ‾ \overline{{a b}} ab为基准,然后分别计算凸包点在向量 a b ‾ \overline{{a b}} ab上的投影的长度,投影最长的凸包点所在的垂直于起始边的直线就是矩形最右边所在的直线。

在这里插入图片描述
d点就是在向量 a b ‾ \overline{{a b}} ab上投影最长的凸包点,那么通过d点垂直于直线ab的直线就是矩形的右边界所在的直线。矩形的左边界的也是这么计算的,不同的是使用的向量不是 a b ‾ \overline{{a b}} ab而是 b a ‾ \overline{{b a}} ba
在这里插入图片描述
如上图所示,h点垂直于ab的直线就是以ab为起始边所计算出来的矩形所在的左边界所在的直线。其中矩形的高就是e点到直线ab的距离,矩形的宽是h点在向量上 b a ‾ \overline{{b a}} ba的投影加上d点在向量 a b ‾ \overline{{a b}} ab上的投影减去ab的长度,即:
w i d t h = ∣ b h ‾ ∣ × cos ⁡ a + ∣ a d ‾ ∣ × cos ⁡ θ − ∣ a b ‾ ∣ w i d t h=|\overline{{{b h}}}|\times\cos a+|\overline{{{a d}}}|\times\cos\theta-|\overline{{{a b}}}| width=bh×cosa+ad×cosθab
于是我们就有了以ab为起始边所构成的外接矩形的宽和高,这样就可以得到该矩形的面积。然后再以bc为起始边,并计算其外接矩形的面积。也就是说凸多边形有几个边,就要构建几次外接矩形,然后找到其中面积最小的矩形作为该凸多边形的最小外接矩形

  • API
contours, hierarchy = cv2.findContours(image_np_thresh, cv2.RETR_EXTERNAL, cv2.CHAIN_APPROX_SIMPLE)

contours为二值图像上查找所有的外部轮廓

rect = cv2.minAreaRect(cnt)

传入的cnt参数为contours中的轮廓,可以遍历contours中的所有轮廓,然后计算出每个轮廓的小面积外接矩形

  • rect 是计算轮廓最小面积外接矩形:rect 结构通常包含中心点坐标 (x, y)、宽度 width、高度 height 和旋转角度 angle
cv2.boxPoints(rect).astype(int)

cv2.boxPoints(rect)返回 是一个形状为 4行2列的数组,每一行代表一个点的坐标(x, y),顺序按照逆时针或顺时针方向排列

将最小外接矩形转换为边界框的四个角点,并转换为整数坐标

cv2.drawContours(image, contours, contourIdx, color, thickness)
  • image:原图像,一般为 numpy 数组,通常为灰度或彩色图像。
  • contours:一个包含多个轮廓的列表,可以用上一个api得到的 [box]
  • contourIdx:要绘制的轮廓索引。如果设置为 -1,则绘制所有轮廓。
  • color:轮廓的颜色,可以是 BGR 颜色格式的三元组,例如 (0, 0, 255) 表示红色。
  • thickness:轮廓线的粗细,如果是正数,则绘制实线;如果是 0,则绘制轮廓点;如果是负数,则填充轮廓内部区域。
#最小轮廓矩形
# 读取图像
num = cv.imread("txycl/images/num.png")
# 灰度化
gray = cv.cvtColor(num, cv.COLOR_BGR2GRAY)
# 二值化
thresh, binary = cv.threshold(gray, 127, 255, cv.THRESH_OTSU + cv.THRESH_BINARY_INV)
# 查找轮廓
cnts, h = cv.findContours(binary, cv.RETR_EXTERNAL, cv.CHAIN_APPROX_SIMPLE)
# 遍历每个轮廓
for cnt in cnts:# 获取外接矩形x, y, w, h = cv.boundingRect(cnt)# 绘制外接矩形cv.rectangle(num, (x, y), (x + w, y + h), (255, 0, 0), 2, cv.LINE_AA)# 获取凸包hull = cv.convexHull(cnt)# 绘制凸包cv.polylines(num, [hull], True, (0, 0, 255), 2, cv.LINE_AA)# 获取最小外接矩形rect = cv.minAreaRect(cnt)box = cv.boxPoints(rect).astype(np.int32)# 绘制最小外接矩形cv.drawContours(num, [box], -1, (0, 255, 0), 2, cv.LINE_AA)
# 显示图像
cv.imshow("num", num)
cv.waitKey(0)
cv.destroyAllWindows()

在这里插入图片描述

17.3 最小外接圆

寻找最小外接圆使用的算法是Welzl算法。Welzl算法基于一个定理:希尔伯特圆定理表明,对于平面上的任意三个不在同一直线上的点,存在一个唯一的圆同时通过这三个点,且该圆是最小面积的圆(即包含这三个点的圆中半径最小的圆,也称为最小覆盖圆

  • API
cv2.minEnclosingCircle(points) -> (center, radius)

参数说明:

  • points:输入参数图片轮廓数据

返回值:

  • center:一个包含圆心坐标的二元组 (x, y)
  • radius:浮点数类型,表示计算得到的最小覆盖圆的半径。
cv2.circle(img, center, radius, color, thickness)
  • img:输入图像,通常是一个numpy数组,代表要绘制圆形的图像。
  • center:一个二元组 (x, y),表示圆心的坐标位置。
  • radius:整型或浮点型数值,表示圆的半径长度。
  • color:颜色标识,可以是BGR格式的三元组 (B, G, R),例如 (255, 0, 0) 表示红色。
  • thickness:整数,表示圆边框的宽度。如果设置为 -1,则会填充整个圆。
#最小外接圆
# 读取图像
num = cv.imread("txycl/images/num.png")
# 灰度化
gray = cv.cvtColor(num, cv.COLOR_BGR2GRAY)
# 二值化
thresh, binary = cv.threshold(gray, 127, 255, cv.THRESH_OTSU + cv.THRESH_BINARY_INV)
# 查找轮廓
cnts, h = cv.findContours(binary, cv.RETR_EXTERNAL, cv.CHAIN_APPROX_SIMPLE)
# 遍历每个轮廓
for cnt in cnts:# 获取外接圆(x, y), radius = cv.minEnclosingCircle(cnt)# 绘制外接圆center = (int(x), int(y))radius = int(radius)cv.circle(num, center, radius, (255, 0, 0), 2, cv.LINE_AA)#显示图像
cv.imshow("num", num)
cv.waitKey(0)
cv.destroyAllWindows()

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


文章转载自:

http://Mvbwmijx.bnwLh.cn
http://1fhuZ0CI.bnwLh.cn
http://E2OYG2gT.bnwLh.cn
http://hS4udNWV.bnwLh.cn
http://qQVzZDF9.bnwLh.cn
http://mxWwvo40.bnwLh.cn
http://5bfy38ce.bnwLh.cn
http://Q9kFU6uC.bnwLh.cn
http://yxycVO1o.bnwLh.cn
http://ZxgGtTy9.bnwLh.cn
http://CFadxAgC.bnwLh.cn
http://5aHjvv6e.bnwLh.cn
http://unxxOFGZ.bnwLh.cn
http://SvcNyiJQ.bnwLh.cn
http://5WrtHWc0.bnwLh.cn
http://M8kAAwjM.bnwLh.cn
http://NU0Lp2p6.bnwLh.cn
http://90vQEQoJ.bnwLh.cn
http://hpDcSu7T.bnwLh.cn
http://CnSuW3j6.bnwLh.cn
http://Yrjl0BrP.bnwLh.cn
http://hoiF0dzn.bnwLh.cn
http://ag9L2VuA.bnwLh.cn
http://bDm9fHT4.bnwLh.cn
http://vr9DREbM.bnwLh.cn
http://tXJSKrtS.bnwLh.cn
http://KwKOJTHW.bnwLh.cn
http://OhA16k4E.bnwLh.cn
http://vUmzucyZ.bnwLh.cn
http://vWsSA52j.bnwLh.cn
http://www.dtcms.com/wzjs/670865.html

相关文章:

  • 做网站项目前怎么收集需求做设计网站的工作怎么样的
  • 做购物网站安全吗一份优秀的网络推广方案
  • 上海网站建设招聘国外服装设计师网站
  • 建设简单企业网站企业网站案例公司
  • 果洛wap网站建设哪家好可以自己做论坛网站吗
  • 无锡网站开发公司电话wordpress doc插件
  • 电商网站优缺点成都口碑最好的家装公司
  • 中山网站制作费用做安卓开发要去看哪些网站
  • 个人网站建设价格表零基础学it哪个专业好
  • 促销型网站公司邮箱手机怎么登录
  • php网站建设案例教程做网站几百块可信吗
  • 杨凌住房和城乡建设局网站wordpress linux 伪静态
  • 百度推广 做网站山楂树建站公司
  • 北京网站开发教师招聘如何用 python 做网站
  • 深圳住房和建设局网站网上预约巩义网站网站建设
  • 免费网站建站工具网站建设行业细分
  • 昆明做凡科网站深圳快速网站制作哪家公司好
  • 建设用地规划许可证在哪个网站查询那个公司做网站好
  • 苍南网站建设公司长沙网络推广营销
  • 设计本官方网站 网络服务跨国购物网站建设费用
  • 网站开发合作意向协议书肃宁哪里建网站
  • 手机号码定位网站开发html好看的网站
  • 网站维护怎么样广州腾虎网络科技有限公司
  • 建设网站前的市场分析主要包括哪些内容网站导入链接
  • 互联网网站如何做流量统计浏览器免费下载
  • 用asp做网站需要什么软件dedecms 漏洞
  • 南宁网站建设方案报价怎么用自助网站
  • 摄影网站功能设计联盟网站做任务
  • 公司网站放哪些内容江西省最新新闻
  • 宁波高端网站建设联系方式重庆网站建设 cqhtwl