This commit is contained in:
Arne van Iterson 2023-09-22 16:16:01 +02:00
commit 27312ae6df
2 changed files with 89 additions and 0 deletions

View File

@ -0,0 +1,28 @@
import cv2
import matplotlib.pyplot as plt
DATASET_PATH = "C:\\Users\\tomse\\Documents\\Dataset\\"
full_img = cv2.imread(DATASET_PATH + "alder\\1.jpg", 1)
bgr_img = cv2.resize(full_img, (0, 0), fx=0.2, fy=0.2)
hsv_img = cv2.cvtColor(bgr_img, cv2.COLOR_BGR2HSV)
cv2.imshow('BGR',bgr_img)
cv2.imshow('HSV',hsv_img)
cv2.imshow('HSV - H',hsv_img[:, :, 0])
cv2.imshow('HSV - S',hsv_img[:, :, 1])
cv2.imshow('HSV - V',hsv_img[:, :, 2])
hist = cv2.calcHist([hsv_img], [0], None, [256], [0,256])
plt.plot(hist, label='H')
hist = cv2.calcHist([hsv_img], [1], None, [256], [0,256])
plt.plot(hist, label='S')
hist = cv2.calcHist([hsv_img], [2], None, [256], [0,256])
plt.plot(hist, label='V')
plt.grid()
plt.legend()
plt.show()
cv2.waitKey(0)
cv2.destroyAllWindows()

View File

@ -0,0 +1,61 @@
import numpy as np
import cv2
import os
import matplotlib.pyplot as plt
DATASET_PATH = "C:\\Users\\tomse\\Documents\\Dataset\\"
DATASET_FOLDERS_LEN = len(os.listdir(DATASET_PATH))
EARLY_BREAK = 3
sift = cv2.SIFT.create(enable_precise_upscale=True)
## Create 2D lists ##
max_magnitudes = [[] for x in range(DATASET_FOLDERS_LEN)]
avg_magnitudes = [[] for x in range(DATASET_FOLDERS_LEN)]
counts = [[] for x in range(DATASET_FOLDERS_LEN)]
## Create other variables ##
labels = ['' for x in range(DATASET_FOLDERS_LEN)]
i = 0
for folder in os.listdir(DATASET_PATH):
if EARLY_BREAK:
print("Step %d/%d processing %s:"%(i+1, EARLY_BREAK, folder))
else:
print("Step %d/%d processing %s:"%(i+1, DATASET_FOLDERS_LEN, folder))
for file in os.listdir(DATASET_PATH + folder):
## Load an image ##
path = DATASET_PATH + folder + "\\" + file
full_image = cv2.imread(path, 0)
image = cv2.resize(full_image, (0, 0), fx=0.25, fy=0.25)
## Detect keypoints ##
kp = sift.detect(image, None)
## Average and Max size ##
magnitudes = [keypoint.size for keypoint in kp]
max_magnitudes[i].append(np.amax(magnitudes))
avg_magnitudes[i].append(np.sum(magnitudes)/len(kp))
## Number of keypoints ##
counts[i].append(len(kp))
## Store labels ##
labels[i] = folder
## Increment folder ##
i += 1
if(i == EARLY_BREAK):
break
print("Done!")
## Plots ##
fig, ax = plt.subplots()
for i in range(DATASET_FOLDERS_LEN):
ax.scatter(avg_magnitudes[i], max_magnitudes[i],label=labels[i], alpha=0.7)
ax.legend()
ax.grid(True)
plt.show()