image-recognition/src/LFUtilities.py

49 lines
1.5 KiB
Python

import cv2
import numpy as np
import pickle as pickle
import os
def resize(max_side, img):
if img.shape[1] > img.shape[0]:
r = max_side / img.shape[1]
dim = (max_side, int(img.shape[0] * r))
else:
r = max_side / img.shape[0]
dim = (int(img.shape[1] * r), max_side)
# perform the actual resizing of the image and show it
resized = cv2.resize(img, dim, interpolation=cv2.INTER_AREA)
return resized
def pickle_img_lf(dest, id, keypoints, descriptors):
dest_folder_name = id[0:3]
filename = id + '.dat'
dest_folder_path = os.path.join(dest, dest_folder_name)
if (not os.path.exists(dest_folder_path)):
os.mkdir(dest_folder_path)
dest_path = os.path.join(dest_folder_path, filename)
kps = np.float32([keypoints[i].pt for i in range(0, len(keypoints))])
pickle.dump([kps, descriptors], open(dest_path, 'wb'))
def unpickle_img_lf(lf_path, id):
dest_folder_name = id[0:3]
filename = id + '.dat'
dest_folder_path = os.path.join(lf_path, dest_folder_name)
dest_path = os.path.join(dest_folder_path, filename)
kps, des = pickle.load((open(dest_path, "rb")))
return kps, des
def delete_img_lf(dest, id):
dest_folder_name = id[0:3]
filename = id + '.dat'
dest_folder_path = os.path.join(dest, dest_folder_name)
dest_path = os.path.join(dest_folder_path, filename)
if os.path.exists(dest_path):
os.remove(dest_path)
if not os.listdir(dest_folder_path):
os.rmdir(dest_folder_path)