[備忘] Image Data Process for Training Yolo

Image Data Process 

資料夾內的圖片全部轉為 JPEG (on mac OS):

sips -s format JPEG *

使用 finder 功能,修改檔案副檔名



使用 openCV 做 image resize:

說明:

max_w_h_thresh 代表 max width/height threshold
如果圖片的最大邊(寬或高)超過 max_w_h_thresh 就把它等比例 resize 在 threshold 限制的大小之內。我目前設 1024 px 為最大邊限制
max_w_h_thresh = 1024.0 def resize_my_input(image, max_w_h_thresh): h, w = image.shape[:2] if (max(h , w) < max_w_h_thresh): return image elif (h > w): print(float(max_w_h_thresh/h)) small_img = cv2.resize(image, None, fx=float(max_w_h_thresh/h), fy=float(max_w_h_thresh/h)) elif (w >= h): print(float(max_w_h_thresh/w)) small_img = cv2.resize(image, None, fx=float(max_w_h_thresh/w), fy=float(max_w_h_thresh/w)) # 要注意 1024.0 才是 float return small_img

走訪資料夾裡面的圖片檔案做 resize

import os import cv2 ## 資料夾名稱放在 argv[1] image_folder = sys.argv[1] for dirPath, dirNames, fileNames in os.walk(image_folder): # print(dirPath) for f in fileNames: if f[-3:] == 'jpg': # 篩選 jpg 檔 fname = os.path.join(dirPath, f) print(fname) img = cv2.imread(fname) img = resize_my_input(img, max_w_h_thresh) # 存檔 cv2.imwrite(fname[:-4]+'_small.JPEG', img)

留言

這個網誌中的熱門文章

[筆記] CRLF跟LF之區別 --- 隱形的 bug

[ML筆記] Batch Normalization

[筆記] 統計實習(1) SAS 基礎用法 (匯入資料並另存SAS新檔,SUBSTR,計算總和與平均,BMI)

[ML筆記] Ensemble - Bagging, Boosting & Stacking