OpenCV python 掩模处理
前言
接上篇OpenCV Python 直方图的使用。在opencv中使用掩模对图像进行处理是一个十分常用的方法。本篇是记录掩模操作的原理及使用。小白入门,如有不正确的地方希望大佬指正。
提示:需要引入numpy
1.1 掩模是什么
个人理解,掩模就是一层玻璃板,你可以指定哪一部分是透明的,哪一部分是不透明的,然后将掩模罩在需要处理的图片上。上图就很容易理解了:
左边的是原图,中间的就是掩模,而右边的则是将原图与掩模经行按位与操作之后的得到的图像。
1.2 掩模的原理
在掩模运算中使用了“与”和“或”运算,利用电路图就可以很好的理解。
与运算和串联电路是相对应的。如上图左侧串联电路,只有当两个开关都是闭合时,电路才是接通的,对应到数值运算上,只有参与运算的数值都为1时,与运算结果才是1。
或运算和并联电路相对应,任意一个开关闭合,电路都是接通的,对应到数值运算上,参与或运算的数值只要有一个值是1,或运算的结果就是1。
掩模操作主要用到的是按位“与运算”。其语法格式为dst = cv2.bitwise_and(src1,src2[,mask]])
在进行按位与运算时,需要先将参与运算的值转换为二进制数,然后将对应位上的值经行与运算。
按位与操作有以下特点:
1、将任何数值N与数值0经行按位与操作,都将会得到数值0。
2、将任何数值N(这里仅考虑8位值)与数值255(8位二进制数是1111 1111)进行按位与操作,都会得到数值N本身。
举个易于理解的小栗子: