mser python篇

之前一直在matlab上用这个函数,现在转移到python上面使用

————————————————————————————————————

1、代码

I = cv2.cvtColor(I, cv2.COLOR_BGR2GRAY);
mser = cv2.MSER_create()
regions,boxes = mser.detectRegions(I)
for box in boxes:
    x, y, w, h = box
    cv2.rectangle(I, (x, y), (x + w, y + h), (255, 0, 0), 2)
cv2.imshow("box", I)
cv2.waitKey(0)

2、效果


————————————————————————————————————

输入限制条件

    在matlab当中,mser的方法中的输入特征包括:'ThresholdDelta'、'RegionAreaRange'等,一共四个参数,不过我只用到了这两个,强度阈值步长可以很好的控制特征数量,特征区域大小则规避很大一部分在特征大小的明显不符合当前目标条件的数据。

    因此我想要在python中也对数据在算法运行过程中进行初步的筛选限制。

1、代码

mser = cv2.MSER_create(_min_area=400, _max_variation=0.7)
regions,boxes = mser.detectRegions(I)

2、结果


3、参数详解


参数:
_delta - 为灰度值的变化量,即公式1和2中的△;
_min_area - 修剪比minArea小的区域
_max_area - 修剪比maxArea更大的区域
_max_variation - 为最大的变化率,即如果公式1和2中的q(i)小于该值,则被认为是最大稳定极值区域;
_min_diversity - 为稳定区域的最小变换量。
_max_evolution - 用于彩色图像的演变步骤
_area_threshold - 对于彩色图像,将导致重新初始化的区域阈值
_min_margin - 对于彩色图像,忽略太小的边距
_edge_blur_size - 对于彩色图像,边缘模糊的光圈大小

————————————————————————————————————

输出数据

    在matlab当中输出数据的属性一共有20多个,其中boundingbox,centrior等参数在后期的特征选择中将会起到重要的检测作用。

1、代码

由于mserdetectRegions函数只返回regions和boxes两个参数,所以其他数据需要通过regions获取

regions,boxes = mser.detectRegions(I)
im=I.copy()
for p in regions:
    ellipse= cv2.fitEllipse(p)
    cv2.ellipse(im, ellipse, (255, 255, 0), 2)
    #ellipse当中的数据包括三行,第一行表示椭圆圆心,第二行表示长轴和短轴各自的长度,第三行表示椭圆的倾斜角度。

2、结果



————————————————————————————————————

参考网站:

(论坛)http://answers.opencv.org/question/19015/how-to-use-mser-in-python/

(实例)https://www.jianshu.com/p/1b9c275698c9

(实例)https://www.cnblogs.com/jkmiao/p/6797252.html

(函数详解)http://bytedeco.org/javacpp-presets/opencv/apidocs/org/bytedeco/javacpp/

opencv_features2d.MSER.html#create-int-int-int-double-double-int-double-double-int-

(图形拟合)https://blog.csdn.net/qq_30909117/article/details/79164055

  • 2
    点赞
  • 12
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值