added file
This commit is contained in:
parent
05037b0731
commit
91baba6cc4
83
src/experiments/algorithms/colour_FE.py
Normal file
83
src/experiments/algorithms/colour_FE.py
Normal file
@ -0,0 +1,83 @@
|
|||||||
|
import cv2
|
||||||
|
import cv2.typing
|
||||||
|
from cv2.mat_wrapper import Mat as Mat
|
||||||
|
import os
|
||||||
|
import numpy as np
|
||||||
|
import csv
|
||||||
|
|
||||||
|
CSV_PATH = "src\\experiments\\algorithms\\data\\"
|
||||||
|
IMG_PATH = "dataset\\accasia_1210048 (2023_09_28 12_19_26 UTC).JPG"
|
||||||
|
BARK_TYPES = 8
|
||||||
|
|
||||||
|
class colourTester:
|
||||||
|
def __init__(self) -> None:
|
||||||
|
pass
|
||||||
|
|
||||||
|
def loadImage(self) -> None:
|
||||||
|
img = cv2.imread(self.im_path, 1)
|
||||||
|
assert img is not None, \
|
||||||
|
"Failed to load an image, check path"
|
||||||
|
self.img = img
|
||||||
|
return
|
||||||
|
|
||||||
|
def setImPath(self, path : str) -> None:
|
||||||
|
if os.path.isfile(path):
|
||||||
|
self.im_path = path
|
||||||
|
else:
|
||||||
|
print("file does not exist")
|
||||||
|
return
|
||||||
|
|
||||||
|
def setCsvBgrPath(self, path : str) -> None:
|
||||||
|
if os.path.isfile(path):
|
||||||
|
self.csv_bgr_path = path
|
||||||
|
else:
|
||||||
|
print("file does not exist")
|
||||||
|
return
|
||||||
|
|
||||||
|
def setCsvHsvPath(self, path : str) -> None:
|
||||||
|
if os.path.isfile(path):
|
||||||
|
self.csv_hsv_path = path
|
||||||
|
else:
|
||||||
|
print("file does not exist")
|
||||||
|
return
|
||||||
|
|
||||||
|
def getData(self, img : cv2.typing.MatLike) -> (float, float):
|
||||||
|
mean = np.zeros(3)
|
||||||
|
std = np.zeros(3)
|
||||||
|
for i in range(img.shape[2]):
|
||||||
|
mean[i] = np.mean(img[:, :, i])
|
||||||
|
std[i] = np.std(img[:, :, i])
|
||||||
|
return (mean, std)
|
||||||
|
|
||||||
|
def loadCurves(self) -> None:
|
||||||
|
labels = []
|
||||||
|
ids = []
|
||||||
|
data = [[[], [], []] for x in range(BARK_TYPES)]
|
||||||
|
with open(self.csv_bgr_path, 'r') as bgr_file:
|
||||||
|
reader = csv.reader(bgr_file, delimiter=',')
|
||||||
|
# fix whatever is happening here
|
||||||
|
|
||||||
|
print(data)
|
||||||
|
return
|
||||||
|
|
||||||
|
def testImage(self) -> None:
|
||||||
|
# load an image
|
||||||
|
self.loadImage()
|
||||||
|
|
||||||
|
# load curves
|
||||||
|
self.loadCurves()
|
||||||
|
|
||||||
|
# extract data
|
||||||
|
mean, std = self.getData(self.img)
|
||||||
|
|
||||||
|
# correlate with curves
|
||||||
|
# dictionary? list? with 0 - 1 scores
|
||||||
|
pass
|
||||||
|
|
||||||
|
if __name__ == "__main__":
|
||||||
|
tester = colourTester()
|
||||||
|
tester.setImPath(IMG_PATH)
|
||||||
|
tester.setCsvBgrPath(CSV_PATH + "bgr_curve.csv")
|
||||||
|
tester.setCsvHsvPath(CSV_PATH + "hsv_curve.csv")
|
||||||
|
tester.testImage()
|
||||||
|
pass
|
Loading…
Reference in New Issue
Block a user