前提
初心者です。pythonで顔認識非接触型体温測定器を作っています。
以下のエラーメッセージが発生しました。
発生している問題・エラーメッセージ
File "/home/pi/thermography/thermo5.py", line 23, in <module> h, w, c = frame.shape AttributeError: 'NoneType' object has no attribute 'shape'
該当のソースコード
python3.7.3
1import time 2import numpy as np 3import cv2 as cv 4 5import busio 6import board 7 8import adafruit_amg88xx 9 10i2c = busio.I2C(board.SCL, board.SDA) 11sensor = adafruit_amg88xx.AMG88XX(i2c, addr=0x68) 12 13time.sleep(0.2) 14 15# カメラ初期化 16cap = cv.VideoCapture(0) 17 18# 顔の分類器の作成 19faceCascade = cv.CascadeClassifier('haarcascades/haarcascade_frontalface_default.xml') 20 21while True: 22 ret, frame = cap.read() 23 h, w, c = frame.shape 24 25 # カメラの画像を半分にする 26 gray = cv.cvtColor(frame, cv.COLOR_BGR2GRAY) 27 28 # 顔の認識 29 facerect = faceCascade.detectMultiScale(gray, scaleFactor=1.2, minNeighbors=6, minSize=(1, 1)) 30 31 if len(facerect) > 0: 32 for rect in facerect: 33 # 配列のスライス→ rect[開始位置:終了位置] rect[0:2]→[左上X座標, 左上Y座標] 34 cv.rectangle(frame, tuple(rect[0:2]), tuple(rect[0:2]+rect[2:4]), (0, 0, 255), thickness=2) 35 36 max_temp = 0.0 37 # 8x8の温度配列 38 pixels = sensor.pixels 39 for x in range(len(pixels)): 40 for y in range(len(pixels[0])): 41 # 最大温度を格納する 42 if (pixels[x][y] > max_temp): 43 max_temp = pixels[x][y] 44 45 print('人を検知しました: '+str(max_temp)) 46 47 cv.imshow('camera capture', frame) 48 49 # ESC 50 if cv.waitKey(1) == 27: 51 break 52 53cap.release() 54# 表示したウィンドウを閉じる 55cv.destroyAllWindows()
試したこと
shapeをshapesにしてみたけど同じでした
補足情報(FW/ツールのバージョンなど)
ここにより詳細な情報を記載してください。
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。
2021/04/08 04:43