[참고]
#두개의 이미지를 비교해서 차이점 보여주기
# 파일명 : test.py
from skimage.measure import compare_ssim
import argparse
import imutils
import cv2
ap = argparse.ArgumentParser()
ap.add_argument("-f", "--first", required = True, help = "first input image")
ap.add_argument("-s", "--second", required = True, help = "second")
args = vars(ap.parse_args())
imageA = cv2.imread(args["first"])
imageB = cv2.imread(args["second"])
grayA = cv2.cvtColor(imageA, cv2.COLOR_BGR2GRAY)
grayB = cv2.cvtColor(imageB, cv2.COLOR_BGR2GRAY)
(score, diff) = compare_ssim(grayA, grayB, full = True)
diff = (diff * 255).astype("uint8")
print("SSIM: {}".format(score))
thresh = cv2.threshold(diff, 0, 255, cv2.THRESH_BINARY_INV |cv2.THRESH_OTSU)[1]
cnts = cv2.findContours(thresh.copy(), cv2.RETR_EXTERNAL, cv2.CHAIN_APPROX_SIMPLE)
cnts = imutils.grab_contours(cnts)
cv2.imshow("Original", imageA)
cv2.imshow("Modified", imageB)
# cv2.imshow("grayA", grayA)
# cv2.imshow("grayB", grayB)
cv2.imshow("Diff", diff)
cv2.imshow("Thresh", thresh)
cv2.waitKey(0)
[실행]
test.py 폴더 안에 비교할 사진(예시 : 1.jpg, 2.jpg) 넣고 터미널 실행
$python test.py --first 1.jpg --second 2.jpg
[결과]
- 개인정보는 모자이크 처리함
- 2개의 input image에서 차이점을 표시해줌
'#openCV # 파이썬' 카테고리의 다른 글
#openCV #Image Contours #cv2.findContours() #cv2.drawContours() (0) | 2019.04.03 |
---|---|
#openCV #카메라 정보 비디오 저장 (0) | 2019.04.01 |
#openCV #python #비디오 프레임 스트림 재생 (0) | 2019.03.27 |
#이미지 처리 라이브러리 #Pillow #scikit-image (0) | 2019.03.19 |
#우분투 16.04 #OpenCV 설치 (0) | 2018.08.16 |