图像滤波

低通滤波的求法、核、卷积

http://lib.csdn.net/article/opencv/28829


图像处理的几种数据类型

CV_8UC1// 8位无符号单通道  

CV_8UC3// 8位无符号3通道  

CV_8UC4  

CV_32FC1// 32位浮点型单通道  

CV_32FC3// 32位浮点型3通道  

CV_32FC4  

初始化矩阵数据

// 初始化方法  

cv::Mat mz = cv::Mat::zeros(cv::Size(5,5),CV_8UC1);// 全零矩阵  

cv::Mat mo = cv::Mat::ones(cv::Size(5,5),CV_8UC1);// 全1矩阵  

cv::Mat me = cv::Mat::eye(cv::Size(5,5),CV_32FC1);// 对角线为1的对角矩阵  

http://blog.csdn.net/iracer/article/details/51296631

中值滤波器和均值滤波器

均值滤波和低通滤波有有一个核矩阵,他们都用于图像的平滑处理。

中值滤波用于去除图像的椒盐噪点。

 首先,我们复习中值。在一连串数字{1,4,6,8,9}中,数字6就是这串数字的中值。由此我们可以应用到图像处理中。依然我们在图像中去3*3的矩阵,里面有9个像素点,我们将9个像素进行排序,最后将这个矩阵的中心点赋值为这九个像素的中值。

 图片中一个方块区域(一般为3*3)内,中心点的像素为全部点像素值的平均值。均值滤波就是对于整张图片进行以上操作。

http://blog.csdn.net/weixin_37720172/article/details/72627543

minMaxLoc 函数

minMaxLoc 函数:在给定的矩阵中寻找最大和最小值,并给出它们的位置

convertTo的用法

convertTo的用法

src.convertTo(dst, type, scale, shift)

img参数为图像数据来源,其类型为Mat。

缩放并转换到另外一种数据类型:

dst:目的矩阵;

type:需要的输出矩阵类型,或者更明确的,是输出矩阵的深度,如果是负值(常用-1)则输出矩阵和输入矩阵类型相同;

scale:比例因子;

shift:将输入数组元素按比例缩放后添加的值;

dst(i)=src(i)xscale+(shift,shift,...)

如果scale=1,shift=0,则不进行比例缩放。

如果输入数组与输出数组的类型相同,则函数可以被用于缩放和平移矩阵或图像;

例:cv::Mat src, src_f;

image.convertTo(src_f, CV_32F, 1.0/255, 0);

图像大小没有变化,但是类型又UINT8变为了FLOAT32位,感觉还有待认识,仅供参考,有知道的朋友请解惑,谢谢!

http://blog.csdn.net/qq_22764813/article/details/52135686


cv::threshold

void cvThreshold( const CvArr* src, CvArr* dst, double threshold, double max_value, int threshold_type );

  src:原始数组 (单通道 , 8-bit of 32-bit 浮点数)。

dst:输出数组,必须与 src 的类型一致,或者为 8-bit。

threshold:阈值

max_value:使用 CV_THRESH_BINARY 和 CV_THRESH_BINARY_INV 的最大值。

threshold_type:阈值类型 threshold_type=CV_THRESH_BINARY:

如果 src(x,y)>threshold ,dst(x,y) = max_value; 否则,des(x,y)=0;


计算图像的拉普拉斯变换,属于空间锐化滤波操作

Laplace算子和Sobel算子一样,属于空间锐化滤波操作。其本质与前面的Spatial Filter操作大同小异,下面就通过Laplace算子来介绍一下空间锐化滤波,并对OpenCV中提供的Laplacian函数进行一些说明。

拉普拉斯滤波的核

核就是矩阵,核中的数值对应拉普拉斯变换公式中的参数的值。

你可能感兴趣的:(图像滤波)