掩膜(可参考opecv-图像处理)

 

openCV 参考链接:https://www.cnblogs.com/huahuawang/p/15866812.html(掩膜

 作用:排除掉干扰数据

 

#!\Users\Local\Programs\Python37
# -*- coding: utf-8 -*-

"""
掩膜示例
"""

import numpy as np
import cv2 as cv
from matplotlib import pyplot as plt
import os

def test_mask():
    """
    蒙版中黑色的区域表示删除掉该区域像素,白色表示保留该区域像素。黑色是0,白色是255
    """
    # 1.读取图像
    img = cv.imread(r'D:\rsrc\data\coal-project\shaft\yuhua\org_images\00155.jpg')
    print(img.shape)
    # 2. 创建蒙版
    mask = np.zeros(img.shape[:2], np.uint8)
    mask[200:350, 580:890] = 0
    mask[0:200]=255
    mask[200:350,0:580]=255
    mask[200:350,890:]=255
    mask[350:]=255
    # 3.掩模
    masked_img = cv.bitwise_and(img,img,mask = mask)

    # 5. 图像展示
    fig,axes=plt.subplots(nrows=2,ncols=2,figsize=(10,8))
    axes[0,0].imshow(img)
    axes[0,0].set_title("原图")
    axes[0,1].imshow(mask)
    axes[0,1].set_title("蒙版数据")
    axes[1,0].imshow(masked_img)
    axes[1,0].set_title("掩膜后数据")
    plt.rcParams['font.sans-serif']=['SimHei'] #设置字体
    plt.show()

def handle_img(root_path,img_dir="org_images",save_dir="JPEGImages"):
    img_dir_path =os.path.join(root_path,img_dir)
    save_path =os.path.join(root_path,save_dir)
    img_name_lists =os.listdir(img_dir_path)
    for img_name in img_name_lists:
        img_path =os.path.join(img_dir_path,img_name)
        img = cv.imread(img_path)
        mask = np.zeros(img.shape[:2], np.uint8)
        mask[200:350, 580:890] = 0
        mask[0:200] = 255
        mask[200:350, 0:580] = 255
        mask[200:350, 890:] = 255
        mask[350:] = 255
        masked_img = cv.bitwise_and(img, img, mask=mask)
        cv.imwrite(fr'{save_path}/{img_name}', masked_img)
        print(f"{img_name}--保存成功")


if __name__ == '__main__':
    # test_mask()

    #window
    img_dir = "org_images"
    root_path =r"D:\rsrc\data\coal-project\shaft\yuhua"
    save_dir ="JPEGImages"
    handle_img(root_path,img_dir,save_dir)
cv掩膜

 -->  

 

posted @ 2022-02-18 14:54  风hua  阅读(118)  评论(0)    收藏  举报