6.1.8 cv:: medianBlur
6.1.8.1 Opencv接口
void cv::medianBlur(InputArray src,
OutputArray dst,
int ksize
)
参数
src 输入1,3-或4通道图像; 当ksize为3或5时,图像深度应为CV_8U,CV_16U或CV_32F,对于较大的光圈尺寸,它只能是CV_8U。
dst 与src大小和类型相同的目标数组。
ksize 孔径线性尺寸;它必须是奇数并且大于1,例如:3,5,7…
使用中值滤波器模糊图像。
中值滤波将图像的每个像素用邻域 (以当前像素为中心的正方形区域)像素的中值代替 。
void ES::ImageProcessing::medianBlurOper(cv::Mat* dst)
{
Mat src = imread("lena.jpg", IMREAD_COLOR);
cv::resize(src, src, Size(src.rows / 4 * 3, src.cols / 4 * 3));
ImageProcessingParams* img_params = static_cast<ImageProcessingParams*>(m_params);
int ksize = img_params->m_kSize;//3
Mat mat;
cv::medianBlur(src, mat, ksize);
Mat mergeMat(src.rows, src.cols + mat.cols, src.type());
Mat submat = mergeMat.colRange(0, src.cols);
src.copyTo(submat);
submat = mergeMat.colRange(src.cols, src.cols + mat.cols);
mat.copyTo(submat);
mergeMat.copyTo(*dst);
}