0
点赞
收藏
分享

微信扫一扫

P19自定义滤波

分湖芝蘭 2022-02-20 阅读 55

(一)知识点:

①核心

 

 

 ②自定义均值滤波/非均值滤波

(二)API

①filter2D()

CV_EXPORTS_W void filter2D( InputArray src, OutputArray dst, int ddepth,
                            InputArray kernel, Point anchor=Point(-1,-1),
                            double delta=0, int borderType=BORDER_DEFAULT );

 参数详情(来源于(55条消息) opencv学习(七)之图像卷积运算函数filter2D()_烟雨博客-CSDN博客_filter2d

(55条消息) 【OpenCV 4】自定义滤波器:filter2D()_风语留痕-CSDN博客_filter2d opencv 

(55条消息) filter2D图像卷积_Zender-CSDN博客_filter2d参数 

当 ddepth 输入值为 -1 时,目标图像和原图像深度保持一致。

kernel:卷积核(或者是相关核),一个单通道浮点型矩阵。如果想在图像不同的通道使用不同的 kernel,可以先使用 split() 函数将图像通道事先分开。

anchor:内核的基准点(anchor),其默认值为 (-1,-1) 说明位于 kernel 的中心位置。基准点即 kernel 中与进行处理的像素点重合的点。

delta:在储存目标图像前可选的添加到像素的值,默认值为 0。

borderType:像素向外逼近的方法,默认值是 BORDER_DEFAULT,即对全部边界进行计算。

注意:滤波完成之后需要使用convertScaleAbs函数将结果转换为字节类型。

②ConverScaleABS()

CV_EXPORTS_W void convertScaleAbs(InputArray src, OutputArray dst,
                                  double alpha = 1, double beta = 0);

 解释(来源于(55条消息) opencv中convertScaleAbs函数执行原理_选择大于努力,方向决定努力的价值-CSDN博客_convertscaleabs

(55条消息) 【OpenCV3】cv::convertScaleAbs()使用详解_guduruyu的专栏-CSDN博客_convertscaleabs 

 参数详情:

  1. double alpha = 1.0, // 乘数因子

  2. double beta = 0.0 // 偏移量

总结: 

convertScaleAbs函数是一个位深转化函数,可将任意类型的数据转化为CV_8UC1。具体数据处理方式如下:

(1). 对于src*alpha+beta的结果如果是负值且大于-255,则直接取绝对值;

(2). 对于src*alpha+beta的结果如果大于255,则取255;

(3). 对于src*alpha+beta的结果是负值,且小于-255,则取255;

(4). 对于src*alpha+beta的结果如果在0-255之间,则保持不变;
 

(三)代码演示:

 

 

举报

相关推荐

0 条评论