Pytorch 使用opnecv讀入圖像由HWC轉(zhuǎn)為BCHW格式方式
傳統(tǒng)使用opencv自帶的swapaxes進行轉(zhuǎn)換,然后使用pytorch的from_numpy轉(zhuǎn)為tensor
例如:
img = img.swapaxes(1,2).swapaxes(0,1)
但是有一個常用的圖像增廣模塊albumentations模塊中的img_to_tensor進行直接轉(zhuǎn)換

注意:我這里使用unsqueeze是為了驗證模型的輸出,如果使用pytorch的dataset則不需要使用這個操作
補充知識:pytorch只用中要注意通道問題
cv讀進來的是BGR圖像,通道是hcw,在torch中使用要注意維度轉(zhuǎn)換
def __getitem__(self, idx):
'''Load image.
Args:
idx: (int) image index.
img_org = Image.open(self.root_src + 'reference_cutBlock' + fname_org)
Returns:
img: (tensor) image tensor.
loc_targets: (tensor) location targets.
cls_targets: (tensor) class label targets.
'''
# Load image
fname_org = self.fnames[idx]
img_org = cv2.imread(self.root_src + 'dn_dataset/' + fname_org)
# img_org = np.asarray(img_org)
coin = np.random.randint(0, 50)
img_dis = skimage.util.random_noise(img_org, mode='gaussian', seed=None,
var=(coin / 255.0) ** 2) # add gaussian noise
# img_dis = img_dis[:, :, (2, 1, 0)] # bgr012 to rgb210
img_dis = img_dis.transpose([2, 0, 1]) # hwc to chw
img_dis = img_dis[(2, 1, 0), :, :] # bgr012 to rgb210
img_org = img_org[:, :, (2, 1, 0)]/255.0 # bgr012 to rgb210
img_org = img_org.transpose([2, 0, 1]) # hwc to chw
img_dis = torch.from_numpy(img_dis).float()
img_org = torch.from_numpy(img_org).float()
# fname_org_dis = self.fnames_dis[idx]
# img_dis = Image.open(self.root_src + 'distorted_train_block/' + fname_org_dis)
# if img_org.mode != 'RGB':
# img_org = img_org.convert('RGB')
#
# if img_dis.mode != 'RGB':
# img_dis = img_dis.convert('RGB')
# img_org = self.transform(img_org)
# img_dis = self.transform(img_dis)
return img_dis, img_org
transforms.ToTensor() 有兩層含義,一個是轉(zhuǎn)化成Tensor,另一個是進行歸一化,此段代碼,沒有采用此語句,而是分兩步完成,因為img_dis,已經(jīng)實現(xiàn)歸一化。
以上這篇Pytorch 使用opnecv讀入圖像由HWC轉(zhuǎn)為BCHW格式方式就是小編分享給大家的全部內(nèi)容了,希望能給大家一個參考,也希望大家多多支持腳本之家。
相關(guān)文章
解決Jupyter notebook更換主題工具欄被隱藏及添加目錄生成插件問題
這篇文章主要介紹了解決Jupyter notebook更換主題工具欄被隱藏及添加目錄生成插件問題,具有很好的參考價值,希望對大家有所幫助。一起跟隨小編過來看看吧2020-04-04
python爬蟲系列Selenium定向爬取虎撲籃球圖片詳解
這篇文章主要介紹了python爬蟲系列Selenium定向爬取虎撲籃球圖片詳解,具有一定參考價值,喜歡的朋友可以了解下。2017-11-11
python 實現(xiàn)socket服務(wù)端并發(fā)的四種方式
這篇文章主要介紹了python 實現(xiàn)socket服務(wù)端并發(fā)的四種方式,幫助大家更好的理解和使用python,感興趣的朋友可以了解下2020-12-12
python?PyAutoGUI實現(xiàn)自動化鼠標鍵盤等常用操作
這篇文章主要介紹了python?PyAutoGUI實現(xiàn)自動化鼠標鍵盤等常用操作使用實例,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進步,早日升職加薪2023-12-12
Python灰度變換中的對數(shù)變換專項分析實現(xiàn)
灰度變換是指根據(jù)某種目標條件按一定變換關(guān)系逐點改變源圖像中每個像素灰度值的方法。目的是改善畫質(zhì),使圖像顯示效果更加清晰。圖像的灰度變換處理是圖像增強處理技術(shù)中的一種非?;A(chǔ)、直接的空間域圖像處理方法,也是圖像數(shù)字化軟件和圖像顯示軟件的一個重要組成部分2022-10-10
python3實現(xiàn)在二叉樹中找出和為某一值的所有路徑(推薦)
這篇文章主要介紹了python3實現(xiàn)在二叉樹中找出和為某一值的所有路徑,本文通過一個實例demo給大家介紹的非常詳細,具有一定的參考借鑒價值,需要的朋友可以參考下2019-12-12

