Я пытаюсь получить значение температуры из нескольких изображений, используя openCV, используя значение RGB, щелкая мышью по точке, которую я хочу увидеть.
# Thermal-processing_v1.py
from PIL import Image
import math
import numpy as np
import os
import pandas as pd
import cv2
# Load images module
def loadImages():
temp = os.listdir('.')
temp.sort()
gbr = []
for i in temp:
if(i.endswith('jpg')):
gbr.append(i)
return [os.path.join('.',f) for f in os.listdir('.') if f.endswith('.jpg')]
# Load images to python
filenames = loadImages()
images = []
gs = []
for file in filenames:
gambar = cv2.imread(file)
images.append(gambar)
# List of list
B = []
G = []
R = []
suhu = []
red = []
green = []
blue = []
# Mouse GUI
def mouseRGB(event,x,y,flags,param):
if event == cv2.EVENT_LBUTTONDOWN:
colorsB = gambar[y,x,0]
colorsG = gambar[y,x,1]
colorsR = gambar[y,x,2]
colors = gambar[y,x]
R.append(colorsR)
G.append(colorsG)
B.append(colorsB)
# Mouse Window
cv2.namedWindow('mouseRGB')
cv2.setMouseCallback('mouseRGB',mouseRGB)
# Grayscale processing
for gray in images:
gray_image = cv2.cvtColor(gray, cv2.COLOR_BGR2GRAY)
gs.append(gray_image)
while(1):
cv2.imshow('mouseRGB',gray_image)
if cv2.waitKey(0) & 0xFF == 27 :
for r in R:
red.append(float(r))
for g in G:
green.append(float(g))
for b in B:
blue.append(float(b))
nr = [i * 0.3 for i in red]
ng = [j * 0.59 for j in green]
nb = [k * 0.11 for k in blue]
lum = nr + ng + nb
tem = [z * 0.1502339357 for z in lum]
break
cv2.destroyAllWindows()
temp = sum(tem)
suhu.append([file,temp])
print(suhu)
# Appending data to csv
img_df = pd.DataFrame(suhu ,columns = ['Image', 'Temperature'])
img_df.to_csv('Olah_Suhu.csv')
Все отлично работает для одногофайл изображения и значение, и если я нажимаю «esc», он продолжает переходить к следующему изображению. Но значение и имя файла все те же, что и в первом. И значение стало суммой значения, которое я нажимаю.
['./190530_0002T.jpg', 34.989483624529996]]
[['./190530_0002T.jpg', 34.989483624529996], ['./190530_0002T.jpg', 69.97896724905999]]
[['./190530_0002T.jpg', 34.989483624529996], ['./190530_0002T.jpg', 69.97896724905999], ['./190530_0002T.jpg', 104.96845087358999]]
[['./190530_0002T.jpg', 34.989483624529996], ['./190530_0002T.jpg', 69.97896724905999], ['./190530_0002T.jpg', 104.96845087358999], ['./190530_0002T.jpg', 139.95793449812004]]