簡體   English   中英

屏蔽 python 中的圖像

[英]mask out the image in python

我有一個二進制掩碼和一個相同大小的圖像。 我想掩蓋人類。 我使用np.multiply ,但它給出了如下所示的圖像,但是,我想要人類,而不是白色像素:.,我繪制了蒙版和圖像。 它們是正常的,但它們的乘法並不像我預期的那樣。

在此處輸入圖像描述

import cv2
import os
import numpy as np
masks32x32 = "./DATA/resized_masks/"
images500x500 = "./DATA/resized_imgs/"

masks = os.listdir(masks32x32)
images = os.listdir(images500x500)

for inx, img in enumerate(images):
    img_array = cv2.imread(images500x500+img)
    mask_array = cv2.imread(masks32x32+img)
    mask120x120 = cv2.resize(mask_array,(500,500),interpolation=cv2.INTER_AREA)
    mask120x120 = np.divide(mask120x120, 255)

    masked_image=np.multiply(img_array, mask120x120)
    cv2.imshow("image",masked_image)
    cv2.waitKey(0)
    cv2.destroyAllWindows()

感謝阿比特博爾。 我使用這個鏈接解決了這個問題: link

我會把它貼在這里。 也許這對他們有幫助。 我更正了代碼如下。 它現在工作正常。

import cv2
import os
import numpy as np
masks32x32 = "./DATA/resized_masks/"
images500x500 = "./DATA/resized_imgs/"

masks = os.listdir(masks32x32)
images = os.listdir(images500x500)

for inx, img in enumerate(images):
    img_array = cv2.imread(images500x500+img)
    mask_array = cv2.imread(masks32x32+img)
    mask500x500 = cv2.resize(mask_array,(500,500),interpolation=cv2.INTER_AREA)
    print(mask500x500.shape)
    print(img_array.shape)

    mask500x500 = cv2.cvtColor(mask500x500, cv2.COLOR_BGR2GRAY)
    #mask500x500 = np.divide(mask500x500, 255)
    mask500x500 = mask500x500.astype(np.uint8)
    masked_image=cv2.bitwise_and(img_array, img_array, mask=mask500x500)
    #masked_image=np.multiply(img_array, mask120x120)
    cv2.imshow("image",masked_image)
    cv2.waitKey(0)
    cv2.destroyAllWindows()

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM