Python OpenCV에서 여러 이미지에 대한 이미지 일치를 결정하고 판정 결과를 CSV로 요약했습니다.

배경



여러 이미지 중에서 한 사람이 찍힌 이미지를 찾고 싶습니다!
그래서,
복수의 화상에 대해, 어느 화상이 일치하는 개소가 있는지를 검출하고,
판정 결과를 CSV에 정리해 보았습니다.

환경



MacOS Mojave ver10.14.4
Anaconda Navigator 1.9.7
※Anaconda의 인스톨은, 여기 를 참고로
JupiterNotebook 5.4.0
OpenCV 3.4.2
※OpenCV의 인스톨은 이전 기사

절차



정책



· 검색 대상 이미지를 폴더에서 가져옵니다.
· 이미지 일치 검색을 수행하고 판정 결과를 배열에 저장
· 배열을 CSV에 저장

구현



먼저 다양한 라이브러리를 가져옵니다.
cv2 : OpenCV를 사용하기 위해
glob : 폴더의 파일을 얻기 위해
os : 파일 파스에서 파일 이름을 얻기 위해
CSV : CSV에 저장하기 위해
import cv2
import glob
import os
import csv

판정 결과를 돌려주는 함수를 설정한다(1: 일치 있음, 0: 일치 없음)
def Push_Stamp(num):
    if 0.99 < num:
        return 1
    else:
        return 0

폴더에 있는 파일 얻기
이번에는 다음의 3개의 파일이 검색 대상으로 했습니다

files =glob.glob("./ImagesFolder/temp/*") #検索画像保管フォルダパスを指定



imread로 감지하고 싶은 이미지를 불러오기

template = cv2.imread('./imagesFolder/temp_template/ipou.jpeg')

판정 결과를 저장하는 빈 배열을 준비한다.

wrcsv = []

화상의 일치 판정을 행하고, 판정 결과를 CSV에 기입한다(반복 처리)

for fname in files:
    # 検索対象画像の読み込み
    image = cv2.imread(fname)
    # 画像マッチング処理
    result = cv2.matchTemplate(image, template, cv2.TM_CCORR_NORMED)
    # 最も類似度が高い位置を取得する。
    minVal, maxVal, minLoc, maxLoc = cv2.minMaxLoc(result)
    # 類似度から、判定結果を求める(上で設定した式を使用)
    Judg = Push_Stamp(maxVal)
    # ファイルパスから、ファイル名と拡張子を取得
    filename, ext = os.path.splitext( os.path.basename(fname) )
    # CSVに書き込み
    wrcsv.append([filename,Judg])

판정 결과의 배열을 CSV에 저장
with open('./imagesFolder/Output/c01.csv', "w") as f: # 文字コードをShift_JISに指定
    writer2 = csv.writer(f, lineterminator="\n") # writerオブジェクトの作成 改行記号で行を区切る
    writer2.writerows(wrcsv) # csvファイルに書き込み

실행 결과





끝에



이제 일치하는지 CSV에서 함께 볼 수 있습니다!

참고



"초보자가 python Anaconda GUI에서 쉽게 OpenCV를 설치해 본다"
htps : // 이 m / 안산시 / ms / 88df7db49f77f65fbf
"Python OpenCV에서 이미지의 일부가 일치하는지, 판정 결과를 반환해 보았다"
htps : // 코 m / 안산시 / ms / 82fc4c7 a3 a 1f84137 Ae f

좋은 웹페이지 즐겨찾기