以中值滤波函数为例,C++版本的函数,调用示例:
#include <opencv2/opencv.hpp>
int main() {
cv::Mat src = cv::imread("input_image.jpg");
cv::Mat dst;
int ksize = 5; //滤波核大小
cv::medianBlur(src, dst, ksize);
cv::imshow("Input Image", src);
cv::imshow("Median Blurred Image", dst);
cv::waitKey(0);
cv::destroyAllWindows();
return 0;
}
python版本函数调用示例:
import cv2
# 读取图像
src = cv2.imread('input_image.jpg')
# 设置模糊核大小
ksize = 5
# 进行中值模糊处理
dst = cv2.medianBlur(src, ksize)
# 显示结果
cv2.imshow('Input Image', src)
cv2.imshow('Median Blurred Image', dst)
cv2.waitKey(0)
cv2.destroyAllWindows()
特别解释,函数输入参数中的 [,dst] 为可选参数。
使用dst参数:需要提前声明一个dst变量。
import cv2
import numpy as np
src = cv2.imread('input_image.jpg')
ksize = 5
dst = np.zeros(src.shape) #提前声明一个dst
cv2.medianBlur(src, ksize, dst) #不使用返回值,滤波后图像为dst
ret = cv2.medianBlur(src, ksize, dst) #将返回的滤波图像存为ret
使用dst参数时,提前使用np.zeros声明,在该语句运行后,dst的类型为 array,float64,但是在medianBlur运行后,dst的类型变为 array,uint8. 可以有返回值,也可以没有返回值。