1。高斯模糊
GaussianBlur(InputArray src, OutputArray dst, Size ksize, double sigmaX, double sigmaY=0, int borderType=BORDER_DEFAULT ) ;
作用:可以去除部分噪声点
使用:Size ksize;为高斯模板的大小,一般是方阵,输入参数时,EX:Size(3,3)。
2.获取\赋值Mat中的某点的数据
Mat img(3,3,CV_32FC1);
s=img.at<float>(i,j); //获取在(i.j)位置的元素 float指的是矩阵里存储的数据的格式
img.at<float>(i,j) = 2.f; //给(i,j)位置的元素赋值为2
3.Sobel 求梯度
Mat img1=imread("D:\\lena.jpg",0);
Mat grad_x, grad_y;
Mat abs_grad_x, abs_grad_y;
Sobel( img1, grad_x,img1.depth(), 1,0, 3); //1,0求列方向上的梯度
convertScaleAbs( grad_x, abs_grad_x ); //0,1求行方向上的梯度
Sobel( img1, grad_x,img1.depth(),0, 1,3);
convertScaleAbs( grad_y, abs_grad_y );
4.图像的镜像复制
copyMakeBorder( const Mat& src, Mat& dst,int top, int bottom, int left, int right,int borderType, const Scalar& value=Scalar() (1)top,bottom,left,right:上下左右四个方向分别需要增加多宽的边界
(2)borderType:边界类型,来决定如何赋值新增加的边界。
1.BORDER_CONSTANT:使用常数(value参数)填充边界(默认为0)
2.BORDER_REPLICATE:复制图像最邻近的行或列
(3)value:如果类型为BORDER_CONSTANT时,新增像素赋值为value,默认为0
copyMakeBorder( src,dst,20, 20, 20, 20,BORDER_REPLICATE);
5.对Mat型数据求平均值
Mat img = imread("lena.jpg");
CvScalar s;
s = mean(img,noArray());
6.取Mat矩阵部分值
Mat a;
Mat b=a(Range(i,j),Range::all());
Mat c= a(Range(i,j).Range(i,j));//取范围为[i,j),前开后闭