@TOC
用下图做演示
multiply()
顾名思义,乘法函数。使用该函数可以将像素的每个通道值乘以这个参数。
方法 | 说明 |
multiply(Mat src1, Scalar src2, Mat dst, double scale, int dtype) | src1:原图像 src2:颜色矩阵 scale:src2矩阵参数的乘数值(从图像的角度来说,可以理解为亮度值,值越大,图像越亮) dst:目标图像 dtype:图像(矩阵)类型 |
multiply(Mat src1, Scalar src2, Mat dst, double scale) | |
multiply(Mat src1, Scalar src2, Mat dst) | |
例:当 src2为[0.0,0.5,1.0]时候,表示在原矩阵像素值的基础上,蓝色通道值乘以0,绿色通道值乘以0.5,红色通道值乘以0(当最终通道值大于255时,通道值为255) scale:表示在src通道的基础上乘以相对应的scale值,比如scale为3时,结合前面的src2矩阵,此时src2矩阵值变为[0.0,1.5,3.0] |
为验证结果,下面创建一个3*3,像素值为[122,122,122]的矩阵图 示例:
执行结果
mat1>>[122, 122, 122, 122, 122, 122, 122, 122, 122; 122, 122, 122, 122, 122, 122, 122, 122, 122; 122, 122, 122, 122, 122, 122, 122, 122, 122] mat2>>[ 0, 183, 255, 0, 183, 255, 0, 183, 255; 0, 183, 255, 0, 183, 255, 0, 183, 255; 0, 183, 255, 0, 183, 255, 0, 183, 255]==Mat [ 33CV_8UC3, isCont=true, isSubmat=false, nativeObj=0xbdaeb0, dataAddr=0xbdb100 ]
读取图像 示例:
结果
亮度演示: 示例:
结果: