Python与OpenCV快速实现图像的掩模运算

Python语言对图像实现快速的掩模运算

  • 编译环境
  • 介绍
  • 掩模代码
  • 运行结果
    • 原图
    • 掩模模板
    • 处理结果
  • 结论

编译环境

编程语言:Python
IDE:PyCharm2017

介绍

图像掩模是用选定的图像、图形或物体、对待处理的图像(全部或局部)进行遮挡来控制图像处理的区域或处理过程。
用选定的图像、图形或物体,对待处理的图像(全部或局部)进行遮挡,来控制图像处理的区域或处理过程。用于覆盖的特定图像或物体称为掩模或模板。光学图像处理中,掩模可以是胶片、滤光片等。数字图像处理中,掩模为二维矩阵数组,有时也用多值图像。数字图像处理中,图像掩模主要用于:①提取感兴趣区,用预先制作的感兴趣区掩模与待处理图像相乘,得到感兴趣区图像,感兴趣区内图像值保持不变,而区外图像值都为0。②屏蔽作用,用掩模对图像上某些区域作屏蔽,使其不参加处理或不参加处理参数的计算,或仅对屏蔽区作处理或统计。③结构特征提取,用相似性变量或图像匹配方法检测和提取图像中与掩模相似的结构特征。④特殊形状图像的制作。

掩模代码

import cv2
import numpy as np

img=cv2.imread('lenna.bmp')                 #读取图像
cv2.imshow('Origin',img)                    #显示原图
mask=np.zeros(img.shape[:2],dtype='uint8')  #构建相同大小的掩模模板
mask[170:370,170:370]=255                   #令感兴趣的区域为白色
cv2.imshow('Mask',mask)                     #显示掩模模板
masked=cv2.bitwise_and(img,img,mask=mask)   #将模板与原图进行位与操作
cv2.imshow('After',masked)                  #显示处理后的图像
cv2.waitKey()
cv2.destroyAllWindows()

运行结果

原图

Python与OpenCV快速实现图像的掩模运算_第1张图片

掩模模板

Python与OpenCV快速实现图像的掩模运算_第2张图片

处理结果

Python与OpenCV快速实现图像的掩模运算_第3张图片

结论

代码可直接运行,在特征提取过程中,对感兴趣区域进行掩模操作能够避免对全图进行计算,极大的提高了代码运行效率。

你可能感兴趣的:(掩模运算,Python,数字图像处理,OpenCV)