tft每日頭條

 > 圖文

 > python進行圖像處理結果分析

python進行圖像處理結果分析

圖文 更新时间:2024-07-24 19:23:23

在人工智能計算機視覺任務中,經常需要對圖像進行預處理操作,比如,在圖像分類任務中,我們需要訓練圖像數據大小一般為:224*224,416*416等,但在實際給的圖像數據大小并不是這樣的大小,所以需要需要經過預處理。而在模型預測推理中,我們還需要把圖像進行歸一化處理。

以下面幾張原始圖像為例,來演示圖像的預處理操作縮放和裁剪,圖像來源于網絡。

python進行圖像處理結果分析(147.Python圖像預處理操作)1

500*705

python進行圖像處理結果分析(147.Python圖像預處理操作)2

500*335

python進行圖像處理結果分析(147.Python圖像預處理操作)3

500*427

python進行圖像處理結果分析(147.Python圖像預處理操作)4

500*397

python進行圖像處理結果分析(147.Python圖像預處理操作)5

500*427

先把圖像以短邊縮放到224,再以中心裁剪成224*224大小。最後根據需要做歸一化處理。

主要定義三個函數:

1、根據短邊縮放:ResizeByShort

2、中心裁剪:CenterCrop

3、歸一化:Normalize

實現代碼

import cv2 import numpy as np import os #根據短邊縮放 def ResizeByShort(img,size=224): shortsize=min(img.shape[0],img.shape[1]) #取短邊 scale=size/shortsize #縮放比 #計算縮放後的寬度 w=int(img.shape[1]*scale) h=int(img.shape[0]*scale) img=cv2.resize(img,(w,h)) return img #中心裁剪正方形 def CenterCrop(img,size): h,w=img.shape[:2] w0=(w-size)//2 h0=(h-size)//2 img=img[h0:h0 size,w0:w0 size] return img #歸一化操作,HWC=>NCWH mean=[0.485, 0.456, 0.406] std=[0.229, 0.224, 0.225] def Normalize(img,mean,std): img=img.astype(np.float32)/255. #BGR>RGB img=img[:,:,::-1] mean=np.array(mean).reshape(1,1,3).astype(np.float32) std=np.array(std).reshape(1,1,3).astype(np.flat32) img=(img-mean)/std # img=np.expand_dims(img,axis=0) # img=np.transpose(img,(0,3,1,2)) return img imgnamelst=["7.jpg","16.jpg","80.jpg","104.jpg","d117.jpg"] imglst=[] for imgname in imgnamelst: fimg=os.path.join("img",imgname) img=cv2.imread(fimg) #根據短邊縮放 img=ResizeByShort(img,224) #中心裁剪 img=CenterCrop(img,224) imglst.append(img) imgres=np.hstack(imglst) #圖像拼接起來 #print(img.shape) cv2.imshow("img",imgres) cv2.waitKey(0) cv2.destroyAllWindows()

運行結果

python進行圖像處理結果分析(147.Python圖像預處理操作)6

5*(224*224)

,

更多精彩资讯请关注tft每日頭條,我们将持续为您更新最新资讯!

查看全部

相关圖文资讯推荐

热门圖文资讯推荐

网友关注

Copyright 2023-2024 - www.tftnews.com All Rights Reserved