[참고]


#두개의 이미지를 비교해서 차이점 보여주기

# 파일명 : 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에서 차이점을 표시해줌



+ Recent posts