OpenCV에 의한 매우 간단한 실수 찾기
결과
다음과 같은 이미지가 출력됩니다.
(이미지는 Wikipedia 보다 인용)
소스 코드
import cv2
import matplotlib.pyplot as plt
img1 = cv2.imread('img1.png')
img1 = cv2.cvtColor(img1,cv2.COLOR_BGR2RGB)
img1 = img1/255
img2 = cv2.imread('img2.png')
img2 = cv2.cvtColor(img2,cv2.COLOR_BGR2RGB)
img2 = img2/255
dif = cv2.absdiff(img1,img2)
dif[dif>0] = 1
fig,axs = plt.subplots(2,2)
ar = axs.ravel()
ar[0].imshow(img1)
ar[1].imshow(img2)
ar[2].imshow(img1*dif*0.8 + img1*0.2)
ar[3].imshow(img2*dif*0.8 + img2*0.2)
plt.show()
본질적인 처리는 OpenCV에 의한 수행으로 끝나지만 matplotlib로 표시하기 위한 하처리에서 꽤 행수가 걸려 있다. 요점은 cv2.absdiff
로 차분 화상을 취할 수 있으므로, 그것을 마스크로서 이용하고 있다. diff 그대로라면 RGB 채널 각각에 대해 차분을 취하고 있으므로, dif[dif>0] = 1
라고 하는 조작에 의해 마스크로 한다.
생각보다도 번거로운 점으로서는, OpenCV의 화상 데이터는 int
형과 float
형의 양쪽 모두 취할 수 있게 되어 있어, 평상시는 편리하지만 이번은 그 탓으로 마스크가 능숙하지 않았다. 결과, 이미지를 로드한 시점에서 /255
하고 강제로 float
로 캐스팅하고 있다.
Reference
이 문제에 관하여(OpenCV에 의한 매우 간단한 실수 찾기), 우리는 이곳에서 더 많은 자료를 발견하고 링크를 클릭하여 보았다
https://qiita.com/hibit/items/80f22f049a890645bc07
텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
우수한 개발자 콘텐츠 발견에 전념
(Collection and Share based on the CC Protocol.)
import cv2
import matplotlib.pyplot as plt
img1 = cv2.imread('img1.png')
img1 = cv2.cvtColor(img1,cv2.COLOR_BGR2RGB)
img1 = img1/255
img2 = cv2.imread('img2.png')
img2 = cv2.cvtColor(img2,cv2.COLOR_BGR2RGB)
img2 = img2/255
dif = cv2.absdiff(img1,img2)
dif[dif>0] = 1
fig,axs = plt.subplots(2,2)
ar = axs.ravel()
ar[0].imshow(img1)
ar[1].imshow(img2)
ar[2].imshow(img1*dif*0.8 + img1*0.2)
ar[3].imshow(img2*dif*0.8 + img2*0.2)
plt.show()
본질적인 처리는 OpenCV에 의한 수행으로 끝나지만 matplotlib로 표시하기 위한 하처리에서 꽤 행수가 걸려 있다. 요점은
cv2.absdiff
로 차분 화상을 취할 수 있으므로, 그것을 마스크로서 이용하고 있다. diff 그대로라면 RGB 채널 각각에 대해 차분을 취하고 있으므로, dif[dif>0] = 1
라고 하는 조작에 의해 마스크로 한다.생각보다도 번거로운 점으로서는, OpenCV의 화상 데이터는
int
형과 float
형의 양쪽 모두 취할 수 있게 되어 있어, 평상시는 편리하지만 이번은 그 탓으로 마스크가 능숙하지 않았다. 결과, 이미지를 로드한 시점에서 /255
하고 강제로 float
로 캐스팅하고 있다.
Reference
이 문제에 관하여(OpenCV에 의한 매우 간단한 실수 찾기), 우리는 이곳에서 더 많은 자료를 발견하고 링크를 클릭하여 보았다 https://qiita.com/hibit/items/80f22f049a890645bc07텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
우수한 개발자 콘텐츠 발견에 전념 (Collection and Share based on the CC Protocol.)