컬러 이미지에 컬러 마스크를 적용하려고합니다. 컬러 마스크는 컬러 이미지에 적용하려는 윤곽입니다. 마스크는 핑크색 외곽선을 제외하고 모두 검은 색입니다 (BGR = [180, 105,255]
). 이상하게도 다음 방법을 사용하여 시크 색 [227,230,49]
윤곽을 적용 할 수 있습니다.OpenCV - 컬러 이미지에 컬러 마스크 적용
컬러 이미지를 imgColor
, 시안 색 윤곽선을 maskCyan
이라고 합니다. 다시 말하지만,이 마스크는 외곽선의 일부인 픽셀을 제외하고는 모두 검은 색으로 [0,0,0]
입니다 ([227,230,49]
). 그런 다음 imgColor_with_cyan_outline = cv2.bitwise_or(imgColor, maskCyan)
을 수행하여 이미지 위에 적용 할 수 있습니다. 이 작업을 maskPink
으로 수행하면 시안 대신 분홍색 픽셀이 표시되고 imgColor_with_pink_outline = cv2.bitwise_or(imgColor, maskPink)
을 사용하면 마스크 나 윤곽선이 적용되지 않은 원래 이미지가 반환됩니다. 나는 단지 내가 얼마나 오해하고있는 것 같아요 cv2.bitwise_or()
작품,하지만 나는 잘 모르겠습니다.
컬러 이미지에 컬러 마스크를 적용하는 다른 방법이 있습니까?
가능한 복제를 읽을 수 있습니다 자세한 내용은 귀하의 OpenCV의 버전
에 따라 구문 확인 (https://stackoverflow.com/questions/22255368/copying-values-from-one-numpy-matrix-to-another-dependent-on-boolean-mask) –
bitwise 또는 -> 각 비트를 취하고 다른 이미지의 동일한 비트. 예를 들어 한 이미지의 픽셀 63과 255의 이미지가 255 인 경우 255가됩니다. 63과 72를 사용하면 127이됩니다 (63111111 adn 72는 01001000입니다). 마스크의 역함수를 이진 (흰색과 검은 색)으로하여 픽셀을 "제거"하거나 이미지에서 검정색으로 바꿀 수 있습니다. 그런 다음 시안 색 이미지를 추가하고 시안 색 이미지를 이미지에 넣거나 numpy를 @ DanMašek 링크로 대체하십시오 – api55