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
Reference
이 문제에 관하여(Python OpenCV에서 여러 이미지에 대한 이미지 일치를 결정하고 판정 결과를 CSV로 요약했습니다.), 우리는 이곳에서 더 많은 자료를 발견하고 링크를 클릭하여 보았다 https://qiita.com/anzanshi/items/507729a3c474fa3151fc텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
우수한 개발자 콘텐츠 발견에 전념 (Collection and Share based on the CC Protocol.)