1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
|
# apple.jpg 그림에 opencv_logo 그림을 Mask_inverse하여 합성.
import cv2
import numpy as np
src1 = cv2.imread('../data/apple.jpg') #사과파일 읽기
src2 = cv2.imread('../data/opencv_logo.png') #로고파일 읽기
rows, cols, channels = src2.shape #로고파일 픽셀값 저장
roi = src1[50:rows+50,50:cols+50] #로고파일 필셀값을 관심영역(ROI)으로 저장함.
gray = cv2.cvtColor(src2, cv2.COLOR_BGR2GRAY) #로고파일의 색상을 그레이로 변경
ret, mask = cv2.threshold(gray, 160, 255, cv2.THRESH_BINARY) #배경은 흰색으로, 그림을 검정색으로 변경
mask_inv = cv2.bitwise_not(mask)
cv2.imshow('mask',mask) #배경 흰색, 로고 검정
cv2.imshow('mask_inv',mask_inv) # 배경 검정, 로고 흰색
src1_bg = cv2.bitwise_and(roi,roi,mask=mask) #배경에서만 연산 = src1 배경 복사
cv2.imshow('src1_bg',src1_bg)
src2_fg = cv2.bitwise_and(src2,src2, mask = mask_inv) #로고에서만 연산
cv2.imshow('src2_fg',src2_fg)
dst = cv2.bitwise_or(src1_bg, src2_fg) #src1_bg와 src2_fg를 합성
cv2.imshow('dst',dst)
src1[50:rows+50,50:cols+50] = dst #src1에 dst값 합성
cv2.imshow('result',src1)
cv2.waitKeyEx()
cv2.destroyAllWindows()
|
'PRACTICE > Basic' 카테고리의 다른 글
[Flask] input값에 따라 Pass, Fail 문자 출력하기 (0) | 2020.11.24 |
---|---|
[Python] 삼각형 넓이 구하기 (0) | 2020.11.23 |
[Python, OpenCV] boxFilter 와 bilateralFilter 를 5초 간격으로 번갈아 실행시키기 (0) | 2020.11.11 |
[C] 함수를 통해 로또 번호 생성, 출력하기 (난수 사용) (0) | 2020.11.10 |
[C] 시험 별 성적 최소값, 최대값 구하기 (0) | 2020.11.10 |
댓글