【화상 합성】OpenCV에서 원화와 Guided_BackPropagation의 화상 합성♪
이전에는 다음 기사에서 다루었습니다.
· 【이미지 합성】 OpenCV에서 적산에 의해 노이즈 제거를 해 보았다 ♪
【참고】
· Arithmetic Operations on Images@OpenCV
코드는 다음과 같습니다
img1과 img2를 입력 키의 비율로 합성합니다. 6 이외의 때의 합성 화상은 덤으로 놓았습니다.
import cv2
import matplotlib.pyplot as plt
img1 = cv2.imread('total_test_image1_g6.jpg')
#img2 = cv2.imread('total_test_gradcam_g6.jpg')
img2 = cv2.imread('total_test_guided_g6.jpg')
rows,cols,channels = img2.shape
roi = img1[0:rows, 0:cols ]
cv2.imshow('org1',img1)
cv2.imshow('org2',img2)
cv2.waitKey(0)
cv2.destroyAllWindows()
a =1
k=0
while True:
dst = cv2.addWeighted(img2,a,roi,1-a,0)
cv2.imshow('dst',dst)
k=cv2.waitKey(0)&0xff
if k ==ord('q'):
cv2.imwrite('results'+str(a)+'.jpg',dst)
break
elif k ==ord('1'):
a = 0.1
elif k ==ord('2'):
a = 0.2
elif k ==ord('3'):
a = 0.3
elif k ==ord('4'):
a = 0.4
elif k ==ord('5'):
a = 0.5
elif k ==ord('6'):
a = 0.6
elif k ==ord('7'):
a = 0.7
elif k ==ord('8'):
a = 0.8
elif k ==ord('9'):
a = 0.9
elif k ==ord('0'):
a = 1
cv2.destroyAllWindows()
결과
키를 1~10까지 바꾸면 다음과 같습니다.
다음은 키가 6을 누를 때의 것입니다.

픽셀 곱 (bitwise_and)
import cv2
import matplotlib.pyplot as plt
img1 = cv2.imread('total_test_image1_g6.jpg')
#img2 = cv2.imread('total_test_gradcam_g6.jpg')
img2 = cv2.imread('total_test_guided_g6.jpg')
rows,cols,channels = img2.shape
roi = img1[0:rows, 0:cols ]
cv2.imshow('org1',img1)
cv2.imshow('org2',img2)
cv2.waitKey(0)
cv2.destroyAllWindows()
a =1
k=0
while True:
dst = cv2.bitwise_and(img2*a,roi*(1-a)) #,mask = mask_inv)
#dst = cv2.addWeighted(img2,a,roi,1-a,0)
cv2.imshow('dst',dst)
k=cv2.waitKey(0)&0xff
if k ==ord('q'):
plt.imshow(dst)
#cv2.imwrite('results_multiply'+str(a)+'.jpg',dst)
plt.savefig('results_multiply'+str(a)+'.jpg')
plt.pause(1)
plt.close()
break
elif k ==ord('1'):
a = 0.1
elif k ==ord('2'):
a = 0.2
elif k ==ord('3'):
a = 0.3
elif k ==ord('4'):
a = 0.4
elif k ==ord('5'):
a = 0.5
elif k ==ord('6'):
a = 0.6
elif k ==ord('7'):
a = 0.7
elif k ==ord('8'):
a = 0.8
elif k ==ord('9'):
a = 0.9
elif k ==ord('g'):
a = 0.95
elif k ==ord('0'):
a = 1
cv2.destroyAllWindows()
결과
프레임이 협조되어 또 이미지가 또 하나이지만 일단 할 수 있었던 것 같습니다.
2

9

g

요약
・어느 정도의 비율로 합성할까 헤매고 있었습니다만, 간단하게 합성할 수 있었습니다
・화소의 곱은 완성도 낮습니다만, 뭐 여기로부터 한 궁리로 사용할 수 있을 것 같습니다
・본론은 조금 실험 거듭하고 나서, 다음 번 정리합니다
덤
1

2

3

4

5

7

8

9

Reference
이 문제에 관하여(【화상 합성】OpenCV에서 원화와 Guided_BackPropagation의 화상 합성♪), 우리는 이곳에서 더 많은 자료를 발견하고 링크를 클릭하여 보았다 https://qiita.com/MuAuan/items/502771523cb7790ccdf0텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
우수한 개발자 콘텐츠 발견에 전념
(Collection and Share based on the CC Protocol.)