索引地址:系列索引
图像的基本运算有很多种,比如两幅图像可以相加、相减、相乘、相除、位运算、平方根、对数、绝对值等;图像也可以放大、缩小、旋转,还可以截取其中的一部分作为ROI(感兴趣区域)进行操作,各个颜色通道还可以分别提取及对各个颜色通道进行各种运算操作。总之,对于图像可以进行的基本运算非常的多,只是挑了些常用的操作详解。
1 2 3 4 5 6 7 8 9 10 11
| void add(InputArray src1, InputArray src2, OutputArray dst,InputArray mask=noArray(), int dtype=-1); void subtract(InputArray src1, InputArray src2, OutputArray dst,InputArray mask=noArray(), int dtype=-1); void multiply(InputArray src1, InputArray src2,OutputArray dst, double scale=1, int dtype=-1); void divide(InputArray src1, InputArray src2, OutputArray dst,double scale=1, int dtype=-1); void divide(double scale, InputArray src2,OutputArray dst, int dtype=-1); void scaleAdd(InputArray src1, double alpha, InputArray src2, OutputArray dst); void addWeighted(InputArray src1, double alpha, InputArray src2,double beta, double gamma, OutputArray dst, int dtype=-1); void sqrt(InputArray src, OutputArray dst); void pow(InputArray src, double power, OutputArray dst); void exp(InputArray src, OutputArray dst); void log(InputArray src, OutputArray dst);
|
上述的基本操作中都属于将基础数学运算应用于图像像素的处理中,上一篇文章介绍了部分像素的处理,下面将着重介绍bitwise_and、bitwise_or、bitwise_xor、bitwise_not这四个按位操作函数。
1 2 3 4
| void bitwise_and(InputArray src1, InputArray src2,OutputArray dst, InputArray mask=noArray()); void bitwise_or(InputArray src1, InputArray src2,OutputArray dst, InputArray mask=noArray()); void bitwise_xor(InputArray src1, InputArray src2,OutputArray dst, InputArray mask=noArray()); void bitwise_not(InputArray src, OutputArray dst,InputArray mask=noArray());
|
bitwise_and是对二进制数据进行“与”操作,即对图像(灰度图像或彩色图像均可)每个像素值进行二进制“与”操作,1&1=1,1&0=0,0&1=0,0&0=0
bitwise_or是对二进制数据进行“或”操作,即对图像(灰度图像或彩色图像均可)每个像素值进行二进制“或”操作,1|1=1,1|0=0,0|1=0,0|0=0
bitwise_xor是对二进制数据进行“异或”操作,即对图像(灰度图像或彩色图像均可)每个像素值进行二进制“异或”操作,1⊕1=0,1⊕0=1,0⊕1=1,0⊕0=0
bitwise_not是对二进制数据进行“非”操作,即对图像(灰度图像或彩色图像均可)每个像素值进行二进制“非”操作,~
1=0,~
0=1
其实就是对OpenCV4入门教程019:像素逻辑操作进行函数封装。