OpenCV를 사용하여 투명한 배경으로 이미지 모양과 일치하는 오버레이를 그리는 방법은 무엇입니까?

oo92

다음과 같은 이미지가 있습니다.

여기에 이미지 설명 입력

이미지가 투명합니다. 로고 글자에만 빨간색 오버레이를 적용하고 싶습니다. 나는 경험이 cv2.addWeight(...)있지만 항상 cv2.rectangle(...). 이미지 모양에만 빨간색 오버레이를 추가 할 수있는 방법이 있습니까?

모하 나드 아메드

알파 채널은 투명 영역을 제어합니다. 따라서 알파 채널을 빨간색 채널에 복사하면 불투명 한 영역에 빨간색 오버레이가 표시됩니다. IMREAD_UNCHANGED플래그를 사용하면 OpenCV가 알파 (네 번째 채널)를 제거하지 않고도 신호를 읽을 수 있습니다.

import cv2
import numpy as np;

img = cv2.imread('test.png', cv2.IMREAD_UNCHANGED)
alpha = img[:,:,3];

imgz = np.zeros(img.shape, dtype=np.uint8)
imgz[:,:,2] = alpha;
imgz[:,:,3] = alpha;

dst = cv2.addWeighted(img, 0.7, imgz, 0.3, 0)

cv2.imwrite('test2.png', dst);

cv2.imshow("original", img)
cv2.imshow("alhpa", alpha)
cv2.imshow("final", dst)
cv2.waitKey(0)

여기에 이미지 설명 입력

이 기사는 인터넷에서 수집됩니다. 재 인쇄 할 때 출처를 알려주십시오.

침해가 발생한 경우 연락 주시기 바랍니다[email protected] 삭제

에서 수정
0

몇 마디 만하겠습니다

0리뷰
로그인참여 후 검토

관련 기사

Related 관련 기사

뜨겁다태그

보관