cvtColor()Scalar()divide()zeros()addWeighted()namedWindow()createTrackbar()inRange()图像基本运算normalize()blur()
cvtColor()cvtColor(image, hsv, COLOR_BGR2HSV);
图像从BGR颜色空间转换成HSV色彩空间。
image是输入图像,hsv是输出图像
cvtColor(image, gray, COLOR_BGR2GRAY);
图像从BGR颜色空间转换成灰度图
image是输入图像,gray是输出图像
对多通道进行赋值。
img = Scalar(255, 0, 0);
生成一个三通道的图像,第一通道的值都为255,其他为0,,结果就是一张红色图像。
divide()divide(img1, img2, output);
实现两个图像相加,输出为output
zeros()Mat img = Mat::zeros(image.size(), image.type());
生成一个零矩阵,矩阵的维度为image.size,数据类型为image.type()
addWeighted()addWeighted(image1, alpha1, image2, alpha2, gamma, output);
实现两张相同大小,相同类型的图片融合。output = alpha1*image1 + alpha2 * image2 + gamma两张图像的分辨率必须是一样,否则会出错。
参考: opencv中addWeighted()函数用法总结
namedWindow()namedWindow("窗口名字", para);
para:WINDOW_AUTOSIZE 表示窗口大小根据图片大小自适应调整,并且手动调节不了图的大小,即是窗口最大化,图依然原来大小。para:WINDOW_NORMAL 表示可以手动改变图的大小,改变到任意大小,但图像会变形,失真。para:WINDOW_OPENGL 表示窗口创建的时候会支持OpenGL createTrackbar()
参考:
Opencv之createTrackbar()详解trackbar回调函数的参数传递 inRange()
指定范围内进行阈值化,得到一个二值化图像。
参考:
inRange()函数
void add(InputArray src1, InputArray src2, OutputArray dst,InputArray mask=noArray(), int dtype=-1);//dst = src1 + src2 void subtract(InputArray src1, InputArray src2, OutputArray dst,InputArray mask=noArray(), int dtype=-1);//dst = src1 - src2 void multiply(InputArray src1, InputArray src2,OutputArray dst, double scale=1, int dtype=-1);//dst = scale*src1*src2 void divide(InputArray src1, InputArray src2, OutputArray dst,double scale=1, int dtype=-1);//dst = scale*src1/src2 void divide(double scale, InputArray src2,OutputArray dst, int dtype=-1);//dst = scale/src2 void scaleAdd(InputArray src1, double alpha, InputArray src2, OutputArray dst);//dst = alpha*src1 + src2 void addWeighted(InputArray src1, double alpha, InputArray src2,double beta, double gamma, OutputArray dst, int dtype=-1);//dst = alpha*src1 + beta*src2 + gamma void sqrt(InputArray src, OutputArray dst);//计算每个矩阵元素的平方根 void pow(InputArray src, double power, OutputArray dst);//src的power次幂 void exp(InputArray src, OutputArray dst);//dst = e**src(**表示指数的意思) void log(InputArray src, OutputArray dst);//dst = log(abs(src))
四个按位 *** 作函数:
bitwise_and、bitwise_or、bitwise_xor、bitwise_not这四个按位 *** 作函数。 void bitwise_and(InputArray src1, InputArray src2,OutputArray dst, InputArray mask=noArray());//dst = src1 & src2 void bitwise_or(InputArray src1, InputArray src2,OutputArray dst, InputArray mask=noArray());//dst = src1 | src2 void bitwise_xor(InputArray src1, InputArray src2,OutputArray dst, InputArray mask=noArray());//dst = src1 ^ src2 void bitwise_not(InputArray src, OutputArray dst,InputArray mask=noArray());//dst = ~src
引用:OpenCV之bitwise_and、bitwise_not等图像基本运算及掩膜
normalize()normalize(image, dst, 1.0, 0, NORM_MINMAX);
图像数据归一化
image是输入图像,dst是归一化后的图像
blur(image, dst, Size(15, 15), Point(-1, -1));
实现对图像进行模糊处理
image表示输入图像,dst表示输出图像,size(15,15)表示平滑核的大小,默认值Point(-1,-1)表示这个锚点在核的中心
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)