前提・実現したいこと
人物の顔に反応し表面温度を測るプログラムを作っているのですが、
取得した表面温度をCSVファイルに書き出したいです。
発生している問題・エラーメッセージ
測定した温度がCSVファイルに出力されていません。(空のファイルです)
該当のソースコード
Python3
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 with open('data.csv','w') as f: 31 32 if len(facerect) > 0: 33 for rect in facerect: 34 # 配列のスライス→ rect[開始位置:終了位置] rect[0:2]→[左上X座標, 左上Y座標] 35 cv.rectangle(frame, tuple(rect[0:2]), tuple(rect[0:2]+rect[2:4]), (0, 0, 255), thickness=2) 36 37 max_temp = 0.0 38 # 8x8の温度配列 39 pixels = sensor.pixels 40 for x in range(len(pixels)): 41 for y in range(len(pixels[0])): 42 # 最大温度を格納する 43 if (pixels[x][y] > max_temp): 44 max_temp = pixels[x][y] 45 46 47 print('温度: '+str(max_temp)) 48 49 50 cv.imshow('camera capture', frame) 51 52 # ESC 53 if cv.waitKey(1) == 27: 54 break 55 56cap.release() 57# 表示したウィンドウを閉じる 58cv.destroyAllWindows()
ファイルにはどういうものが書き込まれていることを期待していますか?