C++ Opencv基础函数

C++ Opencv基础函数,第1张

C++ Opencv基础函数

文章目录

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是输出图像

Scalar()

对多通道进行赋值。

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()
blur(image, dst, Size(15, 15), Point(-1, -1));

实现对图像进行模糊处理
image表示输入图像,dst表示输出图像,size(15,15)表示平滑核的大小,默认值Point(-1,-1)表示这个锚点在核的中心

欢迎分享,转载请注明来源:内存溢出

原文地址: https://outofmemory.cn/zaji/5701492.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2022-12-17
下一篇 2022-12-17

发表评论

登录后才能评论

评论列表(0条)

保存