当前位置: 代码迷 >> 综合 >> opencv中的按位(bitwise)运算及模板(mask)理解
  详细解决方案

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

热度:92   发布时间:2023-12-17 16:07:38.0

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()时,不参加运算;否则输入图像完成按位运算后与之进行运算得到输出图像
在这里插入图片描述
模板要与原图有相同大小

结论:

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

  相关解决方案