前提・実現したいこと
画像を比較して同じ画像を探したい
発生している問題・エラーメッセージ
事前に用意した画像3枚と新規に取得した画像を比較して
同じものを探したいが実行しても
False
False
False
と出力されてしまう
エラーメッセージ
該当のソースコード
python
1import cv2 2import numpy as np 3import pyautogui 4 5sc = pyautogui.screenshot(region=(374,933, 25, 25)) #ディスコを右画面の右下に配置文字を認識 6sc.save('img\0.png') 7 8im = cv2.imread('C:\Users\tatsu\.spyder-py3\img\0.png') 9 10im1 = cv2.imread('C:\Users\tatsu\.spyder-py3\img\じゃんけん\1.png') 11im2 = cv2.imread('C:\Users\tatsu\.spyder-py3\img\じゃんけん\2.png') 12im3 = cv2.imread('C:\Users\tatsu\.spyder-py3\img\じゃんけん\3.png') 13 14print(np.array_equal(im, im1)) 15print(np.array_equal(im, im2)) 16print(np.array_equal(im, im3)) 17
試したこと
ここに問題に対して試したことを記載してください。
補足情報(FW/ツールのバージョンなど)
1.png 2.png 3.pngのいずれか一つは必ず0.pngと同じ画像です
openCVを使うのであればnpでなくcv2.BFMatcherなど画像処理で比較した方が良いと思われますが、
そちらの方法でご検討頂く事はできますでしょうか?
http://labs.eecs.tottori-u.ac.jp/sd/Member/oyamada/OpenCV/html/py_tutorials/py_feature2d/py_matcher/py_matcher.html
ありがとうございます
調べたうえで試してみます
問題のほうはファイル名を英語にしたところ解消されました
それは画像の中身を比較するというかファイルそのものを比較するということですかね?
例えばチェックサムを取得して比較すれば確かに確認はできますが。
https://water2litter.net/rum/post/python_hashlib_checksum/
こちらの方がやりたかった事に近いように思えます
回答1件
あなたの回答
tips
プレビュー