OpenCV4萌新之路——图像滤波之均值滤波“blur”

void cv::blur (InputArray src, OutputArray dst, Size ksize, Point anchor = Point(-1,-1), int borderType = BORDER_DEFAULT )

一、函数简析

头文件 #include <opencv2/imgproc.hpp>

imread返回类型命名空间函数名参数1参数2参数3参数4参数5
详细voidcvblurInputArray srcOutputArray dstSize ksizePoint anchor = Point(-1,-1)int borderType = BORDER_DEFAULT
详细---输入图像输出图像滤波核大小锚点边界类型

二、参数详解

1.InputArray src

输入图像,没有通道数限制,每个通道都是独立处理。但是位深度只能为CV_8U, CV_16U, CV_16S, CV_32F 和 CV_64F这几种。

2.OutputArray dst

输出图像和输入图像一致。

3.Size ksize

模糊核大小

4.Point anchor = Point(-1,-1)

锚点,默认为Point(-1,-1),即核的中心。

5.int borderType = BORDER_DEFAULT

边界类型,这个以后详解。

三、测试代码

#include <iostream>
using namespace std;

#include "opencv2/opencv.hpp"
using namespace cv;

#define IMAGE_PATH "F:/Learn_OpenCV/Sakai_Izumi.jpg"

Mat src; //输入图像
Mat blurImg;//输出图像
int k_width = 3;//模糊核宽度
int k_height = 3;//模糊核高度
Point anchor = Point(-1, -1);//锚点
int borderType = BORDER_DEFAULT;//边界类型

const char* pWindowsTitle = "Blur";
const char* pWidthTitle = "k_width";
const char* pHeightTitle = "k_height";

void blurImage(int, void*)
{
	if (k_width < 1)
	{
		k_width = 1;
	}
	else if (k_height < 1)
	{
		k_height = 1;
	}
	Size ksize = Size(k_width, k_height);//模糊核
	blur(src, blurImg, ksize, anchor, borderType);
	imshow(pWindowsTitle, blurImg);
}

int main()
{
	//读取图片
	src = imread(IMAGE_PATH, 1);
	if (src.empty())
	{
		cout << "Load img failed!" << endl;
		return 0;
	}
	else
	{
		cout << "Load img successs!" << endl;
	}


	int maxVal = MIN(src.cols, src.rows) >> 1; //模糊核长、宽最大值
	namedWindow(pWindowsTitle, WINDOW_AUTOSIZE);
	createTrackbar(pWidthTitle, pWindowsTitle, &k_width, maxVal, blurImage);
	createTrackbar(pHeightTitle, pWindowsTitle, &k_height, maxVal, blurImage);
	waitKey(0);

	return 1;
}

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

模糊核水平、垂直方向增大是不是很像你手抖时拍摄的照片呢。其实模糊核大小就相当于曝光时间,时间越长,拍摄运动目标越容易出现拖影。

三、参考文献

  1. Image Filtering
  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值