Часть извлечения изображения, соответствующая маске в OpenCV
В OpenCV
приложение с Python
у меня есть маска и RGB
изображение, я хочу извлечь часть изображения, которая соответствует маске, но я не знаю как.
я сделаю это:
temp = cv2.bitwise_and(img ,img, mask=feature_map)
но это дает мне и ошибку
cv2.error: /Users/mee/opencv/modules/core/src/arithm.cpp:1589: error: (-215) (mtype == CV_8U || mtype == CV_8S) && _mask.sameSize(*psrc1) in function binary_op
2 ответа
Решение
Вы можете сделать что-то вроде:
mask = cv2.imread('mask.png',0)
im = cv2.imread('guy.png')
mask_inv = 255 - mask;
final_im = mask_inv*im
Вы должны преобразовать свою маску, так как значение пикселей маски объекта равно 255, а значение пикселей фона равно 0. После этого вы можете применить и операцию, или операцию умножения для каждого цветового канала изображения RGB с новой маской.