pythonを利用して画像解析をしております
テンプレートマッチングでテンプレート画像を複数で行いたいのでglob()を用いてプログラミングを作成しているのですが、エラーが出てしまい、なかなか進みません
エラーの意味と解決方法をどなたか教えてください。
python
1import cv2 2import matplotlib.pyplot as plt 3import numpy as np 4import glob 5 6files = glob.glob('(複数の白黒画像)') 7 8image = cv2.imread('(入力画像)',0) 9 10for fname in files: 11 template = cv2.imread(fname) 12 result = cv2.matchTemplate(image, template, cv2.TM_CCORR_NORMED) 13 H, W = img.shape 14 h, w = template.shape 15 16 print('img.shape', img.shape) 17 print('template.shape', template.shape) 18 19 print(H - h + 1, W - w + 1) 20 print('result.shape', result.shape) 21 min_val, max_val, min_loc, max_loc = cv2.minMaxLoc(result) 22 print(f"max value: {max_val}, position: {max_loc}") 23 fig, ax = plt.subplots(facecolor="w") 24 ax.add_patch(plt.Rectangle(max_loc, w, h, ec="r", lw=1, fc="none")) 25 ax.imshow(cv2.cvtColor(image, cv2.COLOR_GRAY2RGB)) 26 27 plt.show()
エラーはこちらになります。
python
1 result = cv2.matchTemplate(image, template, cv2.TM_CCORR_NORMED) 2cv2.error: OpenCV(4.1.1) C:\projects\opencv-python\opencv\modules\imgproc\src\templmatch.cpp:1104: error: (-215:Assertion failed) (depth == CV_8U || depth == CV_32F) && type == _templ.type() && _img.dims() <= 2 in function 'cv::matchTemplate' 3
参考にしているサイトはこちらです
リンク内容
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。
2020/01/20 07:24 編集
2020/01/28 06:09