OpenCV图像处理中常用函数汇总(1)

时间:2022-08-08 21:07:56
 //俗话说:好记性不如烂笔头
//用到opencv 中的函数时往往会一时记不起这个函数的具体参数怎么设置,故在此将常用函数做一汇总; Mat srcImage = imread("C:/Users/Administrator/Desktop/车牌识别/车牌图像库/1.jpg");//读入图像函数 imshow("原图",srcImage);//显示图像函数 imwrite("图3.jpg",imageRIO);//保存图像函数 Mat imageRIO = srcImage(Rect(,,,));//感兴趣区域函数 cvtColor(srcImage,dstImage,CV_BGR2GRAY);//图像灰度化 //边缘检测 Sobel Laplacian Canny 其中Canny算子只能处理(8位)灰度图,其余两种8位32位都可以
Mat grad_x,grad_y;
Sobel(imgGray,grad_x,CV_8U,,,,,);//X方向上的Sobel算子检测,其中3,1,0都是默认值 Sobel(imgGray,grad_y,CV_8U,,,,,);//Y方向上的Sobel算子检测,其中3,1,0都是默认值 addWeighted(grad_x,0.5,grad_y,0.5,,dstImage);//合并梯度 Laplacian(imgGray,dstImage,CV_8U); Canny(imgGray,dstImage,,,);//50和200表示第一个滞后性阈值和第二个滞后性阈值,较小者用于边缘连接,较大者控制强边缘的初始段,达阈值opnecv推荐为小阈值的3倍;
//3表示应用的Sobel算子的孔径大小 有默认值为3; // 寻找轮廓 只处理8位 即灰度图像
vector<vector<Point>> contours;
findContours(imgGray,contours,CV_RETR_EXTERNAL,CV_CHAIN_APPROX_NONE);
drawContours(dstImage,contours,-,Scalar(),);
imshow("轮廓图",dstImage); //阈值化操作
threshold(srcImage,dstImage,,,);
imshow("固定阈值化图像",dstImage);
adaptiveThreshold(imgGray,dstImage,,ADAPTIVE_THRESH_MEAN_C,THRESH_BINARY,,);
imshow("自适应阈值化图像",dstImage); // resize函数实现
resize(srcImage,dstImage,Size(),0.5,0.5);//缩小为一半
resize(srcImage,dstImage,Size(),,);//放大2倍
resize(srcImage,dstImage,Size(srcImage.cols*,srcImage.rows*));//放大3倍 // 金字塔函数实现
pyrUp(srcImage,dstImage,Size(srcImage.cols*,srcImage.rows*));// 放大2倍
pyrDown(srcImage,dstImage,Size(srcImage.cols/,srcImage.rows/));// 缩小2倍 //漫水填充算法
Rect ccomp;
floodFill(srcImage,Point(,),Scalar(,,),&ccomp,Scalar(,,),Scalar(,,)); //膨胀腐蚀
Mat element = getStructuringElement(MORPH_RECT,Size(,));
erode(srcImage,dstImage,element);//腐蚀函数
dilate(srcImage,dstImage,element);//膨胀函数 morphologyEx(g_bgrImage,g_bgrImage, MORPH_CLOSE, element);//闭运算 morphologyEx(g_bgrImage,g_bgrImage, MORPH_OPEN, element);//开运算 //滤波
boxFilter(srcImage,dstImage,-,Size(,));
imshow("方框滤波图",dstImage); blur(srcImage,dstImage,Size(,));
imshow("均值滤波图",dstImage); GaussianBlur(srcImage,dstImage,Size(,),,);
imshow("高斯滤波图",dstImage); medianBlur(image,out,);//中值滤波,7为孔径的线性尺寸
bilateralFilter(src,dst,d,sigmaColor,sigmaSpace);//双边滤波,d表示过滤过程中每个像素邻域的直径,sigmaColor颜色空间滤波器的sigma值,sigmaSpace表示坐标空间中滤波器的sigma值
bilateralFilter(image,out,,*,/); //《未完待续》