opencv中的按位(bitwise)运算及模板(mask)理解

bitwise的四种运算:按位与,按位或,按位异或,按位非
比如:128 = 1000 0000 ,按位非之后是0111 1111 = 127,图像上这个位置的像素值就从128变成了127

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());

四种计算后面都有一个mask参数,当mask参数 = Mat()时,不参加运算;否则输入图像完成按位运算后与之进行运算得到输出图像
opencv中的按位(bitwise)运算及模板(mask)理解_第1张图片
模板要与原图有相同大小

结论:

模板的作用就是选择原图中的那个像素可以拷贝,
在位置(x,y)时,如果mask的像素值不等于0,则dst(x,y) = src(x,y);
如果mask的像素值等于0,则dst(x,y) = 0;

你可能感兴趣的:(opencv中的按位(bitwise)运算及模板(mask)理解)