-
环境配置 :OpenCV在xCode中的安装与环境配置
-
处理效果
-
函数参数介绍
主要函数filter2D
void filter2D( InputArray src, // 预处理图像
OutputArray dst, // 输出结果
int ddepth, // 处理的深度。若为负值,则表示其深度与源图像相等。
InputArray kernel, // 用来遍历图像的核
Point anchor = Point(-1,-1), // 核的锚点的相对位置,其中心点默认为 (-1, -1) 。
double delta = 0, // 在卷积过程中,该值会加到每个像素上。默认为 0 。
int borderType = BORDER_DEFAULT ) // 保留默认
-
主要代码源码
全局变量
int kernel_size; // 归一化块滤波器的核大小
int ind = 0; // 自加变量,控制归一化块滤波器的核大小
Mat src_F2D, dst_F2D; // 前为预处理图像,厚实结果
Mat kernel; // 归一化核(用来遍历图像的核)
cv::Point anchor(-1, -1); // 核的锚点位置
double delta = 0; // 在卷积过程中,该值会加到每个像素上。
int ddepth = -1; // 输出图像处理的深度
实现(具体参见源码)
// 获取图像
UIImage *image = [UIImage imageNamed:@"mm.jpeg"];
UIImageToMat(image, src_F2D);
/// 更新归一化块滤波器的核大小(此处ind是int类型变量,NSTimer控制其大小)
kernel_size = 3 + 2 * (ind % 5);
kernel = Mat::ones(kernel_size, kernel_size, CV_32F) / (float)(kernel_size*kernel_size);
/// 使用滤波器
filter2D(src_F2D, dst_F2D, ddepth, kernel, anchor, delta, BORDER_DEFAULT);
/// 图像转化
_imageView.image = MatToUIImage(dst_F2D);
-
效果展示