利用openCV实现中值滤波自定义滤波窗口尺寸的功能(类似halcon中的median_rect函数功能)

利用openCV实现中值滤波自定义滤波窗口尺寸的功能(类似halcon中的median_rect函数功能)

在halcon图像库中有一个常用的中值滤波算子median_rect:
median_rect(Image : ImageMedian : MaskWidth, MaskHeight : )
其中Image为输入图像,ImageMedian为输出图像,MaskWidth为滤波窗口的宽度,MaskHieght为滤波窗口的高度。
openCV中自带了中值滤波的函数medianBlur:
C++: void medianBlur(InputArray src, OutputArray dst, int ksize)
其中src为输入图像,dst为输出图像,ksize为滤波窗口的大小。
halcon中的中值滤波算子相对于openCV中的中值滤波算子,在滤波窗口上有所不同。在halcon中可以分别定义滤波窗口的宽度与高度,生成一个MaskWidthMaskHeight 大小的滤波窗口,然后openCV中只能定义正方形的尺寸为ksizeksize的滤波窗口,无法分别定义宽度和高度,所以相比halcon中的median_rect算子灵活性不高。
在一个具体的项目中,根据实际情况,需要对图像进行中值滤波,当设定滤波窗口宽度为1,高度为11时效果最佳。然后在利用openCV进行实现时,现有的中值滤波函数medianBlur无法满足要求,因此仿照halcon中的滤波函数进行了编写,其中排序采用的是希尔排序法。由于要处理的图像尺寸不大,且时间要求不高,所以对于编写的程序没做过多速度方面的优化。下面贴出具体的代码。

in
  • 2
    点赞
  • 4
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值