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

做网站找模板广州网站优化快速提升网站排名

做网站找模板,广州网站优化快速提升网站排名,app排名优化,淘宝上网站开发『youcans 的 OpenCV 例程300篇 - 总目录』 【youcans 的 OpenCV 例程 300篇】247. 特征检测之最大稳定极值区域#xff08;MSER#xff09; 1. 最大稳定极值区域#xff08;MSER#xff09; 最大稳定极值区域#xff08;MSER-Maximally Stable Extremal Regions#xf… 『youcans 的 OpenCV 例程300篇 - 总目录』 【youcans 的 OpenCV 例程 300篇】247. 特征检测之最大稳定极值区域MSER 1. 最大稳定极值区域MSER 最大稳定极值区域MSER-Maximally Stable Extremal Regions是一种检测图像文本区域的算法基于分水岭的思想对图像进行斑点区域检测。 MSER算法具有仿射不变性对灰度的变化具有较强的鲁棒性但检测准确率低于深度学习方法主要用于自然场景的文本检测的前期阶段。 MSER算法对灰度图像进行阈值处理阈值从0到255依次递增类似于分水岭算法中的水平面的上升。最低点首先被淹没随着水面的上升逐渐淹没整个山谷直到所有的点全部被淹没。在不同阈值下如果某些连通区域不变或变化很小则该区域称为最大稳定极值区域。 以 QiQ_iQi​表示阈值为 i 时的某一连通区域则变化率 qiq_iqi​ 为 qi∣QiΔ−Qi∣∣Qi∣q_i \frac{|Q_{i\Delta} - Q_i|}{|Q_i|}qi​∣Qi​∣∣QiΔ​−Qi​∣​ 当变化率 qiq_iqi​ 为局部极小值时则 QiQ_iQi​为最大稳定极值区域。 2. OpenCV 的 cv::MSER类 OpenCV中提供了MSER类MSER类继承了cv::Feature2D类。 在Python语言中OpenCV提供了MSER类的接口函数cv.MSER.create实例化MSER类成员函数detectRegions检测并返回找到的所有区域。 函数原型 cv.MSER.create([, delta, min_area, max_area, max_variation, min_diversity, max_evolution, area_threshold, min_margin, edge_blur_size]) → retval cv.MSER_create([, delta, min_area, max_area, max_variation, min_diversity, max_evolution, area_threshold, min_margin, edge_blur_size]) → retval mser.detectRegions(image[, ]) → msers, bboxes 参数说明 ● image输入图像8位单通道、3通道或4通道图像 ● msers检测到的所有区域的点集列表格式 ● bboxes检测到的所有区域的边界矩形列表格式 ● delta灰度值的变化量变化率公式中的Δ\DeltaΔ默认值5 ● min_area区域最小面积阈值默认值60 ● max_area区域最大面积阈值默认值14400 ● max_variation最大变化率默认值0.25 注意问题 ⒈函数cv.MSER.create或cv.MSER_create实例化MSER类创建一个MSER对象mser。在OpenCV的不同版本中可能只允许其中一种方式。 ⒉OpenCV的部分版本中参数delta、min_area、max_area、max_variation的格式为 _delta、_min_area、_max_area、_max_variation。 ⒊成员函数detectRegions检测并返回找到的所有区域输出参数msers、bboxes都是列表格式列表长度为N对应于找到的N个区域。 ⒋列表msers的第i个元素msers[i]是形如(k,2)的Numpy数组表示第i个区域点集k是第i个区域的像素点数量。msers[i]的每一行msers [i][k,:]表示第i个区域的第k个像素点的坐标[x,y]。 ⒌列表bboxes的第i个元素bboxes[i]是形如(4,)的Numpy数组表示第i个区域的垂直边界矩形。数组元素[x, y, w, h]分别表示左上角顶点坐标 (x,y)、矩形宽度w和高度h。 3. 例程14.29特征检测之最大稳定极值区域MSER 本例程示例MSER检测最大稳定极值区域并通过NMS删除重复结果。MSER检测到4082个区域NMS删除重复结果后减少到了149个区域。 # 14.29 特征检测之最大稳定极值区域MSER import cv2 as cv import numpy as np from matplotlib import pyplot as pltdef NonMaxSuppression(boxes, thresh0.5):x1, y1 boxes[:,0], boxes[:,1]x2, y2 boxes[:,0]boxes[:,2], boxes[:,1]boxes[:,3]area boxes[:,2] * boxes[:,3] # 计算面积# 删除重复的矩形框pick []idxs np.argsort(y2) # 返回的是右下角坐标从小到大的索引值while len(idxs) 0: last len(idxs) - 1 # 将最右下方的框放入pick 数组i idxs[last]pick.append(i)# 剩下框中最大的坐标(x1Max,y1Max)和最小的坐标(x2Min,y2Min)x1Max np.maximum(x1[i], x1[idxs[:last]])y1Max np.maximum(y1[i], y1[idxs[:last]])x2Min np.minimum(x2[i], x2[idxs[:last]])y2Min np.minimum(y2[i], y2[idxs[:last]])# 重叠面积的占比w np.maximum(0, x2Min-x1Max1)h np.maximum(0, y2Min-y1Max1)overlap (w * h) / area[idxs[:last]]# 根据重叠占比的阈值删除重复的矩形框idxs np.delete(idxs, np.concatenate(([last], np.where(overlap thresh)[0])))return boxes[pick] # x, y, w, hif __name__ __main__:img cv.imread(../images/Fig0944a.tif, flags1)gray cv.cvtColor(img, cv.COLOR_BGR2GRAY)height, width gray.shape[:2]# 创建 MSER 对象检测 MSER 区域# mser cv.MSER_create(_min_area500, _max_area20000)mser cv.MSER.create(_min_area306, _max_area20000) # 实例化 MSERregions, boxes mser.detectRegions(gray) # 检测并返回找到的 MSERlenMSER len(regions) # 4082print(Number of detected MSER: , lenMSER)# print(regions[0].shape, boxes[0].shape)imgMser1 img.copy()imgMser2 img.copy()for i in range(lenMSER):# 绘制 MSER 凸壳points regions[i].reshape(-1, 1, 2) # (k,2) - (k,1,2)hulls cv.convexHull(points)cv.polylines(imgMser1, [hulls], 1, (255,0,0), 2) # 绘制凸壳 (x,y)# 绘制 MSER 矩形框x, y, w, h boxes[i] # 区域的垂直矩形边界框cv.rectangle(imgMser2, (x,y), (xw,yh), (0,0,255), 2)# 非最大值抑制 (NMS)imgMser3 img.copy()nmsBoxes NonMaxSuppression(boxes, 0.6)lenNMS len(nmsBoxes) # 149print(Number of NMS-MSER: , lenNMS)for i in range(lenNMS):# 绘制 NMS-MSER 矩形框x, y, w, h nmsBoxes[i] # NMS 矩形框cv.rectangle(imgMser3, (x,y), (xw,yh), (0,255,0), 2)plt.figure(figsize(9, 6))plt.subplot(131), plt.title(MSER regions)plt.axis(off), plt.imshow(cv.cvtColor(imgMser1, cv.COLOR_BGR2RGB))plt.subplot(132), plt.title(MSER boxes)plt.axis(off), plt.imshow(cv.cvtColor(imgMser2, cv.COLOR_BGR2RGB))plt.subplot(133), plt.title(NMS-MSER boxes)plt.axis(off), plt.imshow(cv.cvtColor(imgMser3, cv.COLOR_BGR2RGB))plt.tight_layout()plt.show() 运行结果 Number of detected MSER: 4082 Number of NMS-MSER: 149程序说明 程序运行结果如图17-9所示。 ⑴ 子图1绘制MSER算法检测到的最大稳定极值区域检测结果取决于区域面积的阈值设置。子图2绘制检测到的MSER区域的垂直边界矩形。 ⑵ 子图3通过NMS方法删除了检测到的MSER区域中的重复结果。MSER算法检测到4082个区域NMS去重后减少为 149 个区域。 4. 非极大值抑制 NMS 非极大值抑制non maximum suppression, nms是通常用于目标检测算法作用是去除重复的区域就是抑制不是极大值的元素在这里就是去除和想要的框重叠部分过大的框。 NMS的基本思想是将所有框按得分进行排序然后无条件保留其中得分最高的框然后遍历其余框找到和当前最高分的框的重叠面积IOU大于一定阈值的框并删除。然后继续这个过程找另一个得分高的框再删除和其IOU大于阈值的框一直循环直到所有的框都被处理。 在目标检测中常用非极大值抑制算法(NMS)对生成的大量候选框进行后处理在 faster R-CNN 中每一个 bbox 都有一个得分然后使用 NMS 去除冗余的候选框得到最具代表性的 bbox以加快目标检测的效率。 NMS的具体实现流程为 根据候选框的类别分类概率得分按最高到最低将BBox排序例如ABCDEF先标记最大概率矩形框A是要保留下来的即A的分数最高则无条件保留将B~E分别与A求重叠率IoU两框的交并比假设B、D与A的IoU大于设定的阈值那么B和D可以认为是重复标记被剔除继续从剩下的矩形框C、E、F中选择概率最大的C标记为要无条件保留下来的框然后分别计算C与E、F的重叠度扔掉重叠度超过设定阈值的矩形框就这样一直重复下去直到剩下的矩形框没有了得到所有要保留下来的矩形框 【本节完】 版权声明 youcansxupt 原创作品转载必须标注原文链接(https://blog.csdn.net/youcans/article/details/125724395) Copyright 2022 youcans, XUPT Crated2022-11-28
http://www.pierceye.com/news/464407/

相关文章:

  • 北京交友最好的网站建设wordpress 移动支付宝
  • 2015百度推广网站遭到攻击非遗网页设计作品欣赏
  • 网站空间需要多大网站推荐几个免费的
  • 做一个网站花多少钱建行系统
  • 滁州市住房城乡建设部网站wordpress title背景
  • 餐饮手机微网站怎么做wordpress 多语言建站
  • 企业信息系统案例东昌府聊城网站优化
  • 做美食直播哪个网站好php网站开发数据列表排重
  • 网站建设 职责网站分站加盟
  • 单页网站产品手机网站免费生成
  • 无锡电子商务网站建设公司德国网站的后缀名
  • 服务器做视频网站赣州企业做网站
  • 如何看出网站用dede做的网站百度快照
  • 做网站很难吗五种新型营销方式
  • 个人网站搭建模拟感想江西企业网站建设哪家好
  • 长春企业网站建设网站制作公司相关工作
  • 免费课程网站有哪些兼职网站项目建设报告
  • 建立网站免费dedecms网站地图制作
  • 网页设计公司网站制作做网站最主要是那个一类商标
  • 卫生局网站建设方案网站架构设计英文翻译
  • 学做衣服网站有哪些智能开发平台软件
  • wordpress 下载站插件wordpress清楚所有评论
  • 公司网站建设工作计划网站设置受信任
  • 网站如何做实名验证码深圳企业网站推广
  • 傻瓜式大型网站开发工具餐饮业手机php网站
  • 网站建设小细节图片东阳网站建设yw126
  • 为什么找不到做网站的软件怎么做音乐mp3下载网站
  • 做一个网站需要什么网络营销方式分析论文
  • 可以做3d电影网站企业网站优化应该怎么做
  • 中山做网站联系电话app客户端开发公司