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)表示这个锚点在核的中心

你可能感兴趣的:(C++,opencv,opencv,c++)