75 lines
2.7 KiB
Python
75 lines
2.7 KiB
Python
import cv2
|
||
import numpy as np
|
||
|
||
class Read_image_and_Process_image:
|
||
def __init__(self) -> None:
|
||
pass
|
||
def get_data(self, path):
|
||
'''讀檔'''
|
||
img_size = 512 # 縮小後的影像
|
||
try:
|
||
img_arr = cv2.imread(path, cv2.IMREAD_COLOR) # 讀檔(彩色)
|
||
# img_arr = cv2.imread(path, cv2.IMREAD_GRAYSCALE) # 讀檔(灰階)
|
||
resized_arr = cv2.resize(img_arr, (img_size, img_size)) # 濤整圖片大小
|
||
except Exception as e:
|
||
print(e)
|
||
|
||
return resized_arr
|
||
|
||
def Data_Augmentation_Image(self, path):
|
||
resized_arr = []
|
||
|
||
for p in path:
|
||
img_size = 512 # 縮小後的影像
|
||
try:
|
||
img_arr = cv2.imread(p, cv2.IMREAD_COLOR) # 讀檔(彩色)
|
||
# img_arr = cv2.imread(path, cv2.IMREAD_GRAYSCALE) # 讀檔(灰階)
|
||
resized_arr.append(cv2.resize(img_arr, (img_size, img_size))) # 濤整圖片大小
|
||
except Exception as e:
|
||
print(e)
|
||
|
||
return np.array(resized_arr)
|
||
|
||
def image_data_processing(self, data, label):
|
||
'''讀檔後處理圖片'''
|
||
img_size = 512
|
||
data = np.asarray(data).astype(np.float32) # 將圖list轉成np.array
|
||
data = data.reshape(-1, img_size, img_size, 3) # 更改陣列形狀
|
||
label = np.array(label) # 將label從list型態轉成 numpy array
|
||
return data, label
|
||
|
||
def normalization(self, images):
|
||
imgs = []
|
||
for img in images:
|
||
img = np.asarray(img).astype(np.float32) # 將圖list轉成np.array
|
||
img = img / 255 # 標準化影像資料
|
||
imgs.append(img)
|
||
|
||
return np.array(imgs)
|
||
|
||
# def load_numpy_data(self, file_names):
|
||
# '''載入numpy圖檔,並執行影像處理提高特徵擷取'''
|
||
# i = 0
|
||
# numpy_image = []
|
||
# original_image = []
|
||
# for file_name in file_names:
|
||
# compare = str(file_name).split(".")
|
||
# if compare[-1] == "npy":
|
||
# image = np.load(file_name) # 讀圖片檔
|
||
# numpy_image.append(image) # 合併成一個陣列
|
||
# else:
|
||
# original_image.append(file_name)
|
||
|
||
# original_image = self.get_data(original_image)
|
||
|
||
# for file in original_image:
|
||
# numpy_image.append(file)
|
||
|
||
# return numpy_image
|
||
|
||
def make_label_list(self, length, content):
|
||
'''製作label的列表'''
|
||
label_list = []
|
||
for i in range(length):
|
||
label_list.append(content)
|
||
return label_list |