Pytorch 使用opnecv读入图像由HWC转为BCHW格式方式


Posted in Python onJune 02, 2020

传统使用opencv自带的swapaxes进行转换,然后使用pytorch的from_numpy转为tensor

例如:

img = img.swapaxes(1,2).swapaxes(0,1)

但是有一个常用的图像增广模块albumentations模块中的img_to_tensor进行直接转换

Pytorch 使用opnecv读入图像由HWC转为BCHW格式方式

注意:我这里使用unsqueeze是为了验证模型的输出,如果使用pytorch的dataset则不需要使用这个操作

补充知识:pytorch只用中要注意通道问题

cv读进来的是BGR图像,通道是hcw,在torch中使用要注意维度转换

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() 有两层含义,一个是转化成Tensor,另一个是进行归一化,此段代码,没有采用此语句,而是分两步完成,因为img_dis,已经实现归一化。

以上这篇Pytorch 使用opnecv读入图像由HWC转为BCHW格式方式就是小编分享给大家的全部内容了,希望能给大家一个参考,也希望大家多多支持三水点靠木。

Python 相关文章推荐
在Python的Flask框架中使用模版的入门教程
Apr 20 Python
Django发送html邮件的方法
May 26 Python
python 设置文件编码格式的实现方法
Dec 21 Python
Python找出微信上删除你好友的人脚本写法
Nov 01 Python
django小技巧之html模板中调用对象属性或对象的方法
Nov 30 Python
PyCharm设置每行最大长度限制的方法
Jan 16 Python
selenium 安装与chromedriver安装的方法步骤
Jun 12 Python
python实现邮件自动发送
Aug 10 Python
python 怎样将dataframe中的字符串日期转化为日期的方法
Sep 26 Python
python画蝴蝶曲线图的实例
Nov 21 Python
用Python实现Newton插值法
Apr 17 Python
详解Python 3.10 中的新功能和变化
Apr 28 Python
基于pycharm实现批量修改变量名
Jun 02 #Python
pytorch读取图像数据转成opencv格式实例
Jun 02 #Python
Python使用jupyter notebook查看ipynb文件过程解析
Jun 02 #Python
解决python cv2.imread 读取中文路径的图片返回为None的问题
Jun 02 #Python
Pandas读取csv时如何设置列名
Jun 02 #Python
python os模块常用的29种方法使用详解
Jun 02 #Python
完美解决pycharm 不显示代码提示问题
Jun 02 #Python
You might like
php基础知识:类与对象(4) 范围解析操作符(::)
2006/12/13 PHP
php实现中文字符截取防乱码方法汇总
2015/04/29 PHP
PHP Cookie学习笔记
2016/08/23 PHP
jQuery 学习6 操纵元素显示效果的函数
2010/02/07 Javascript
JavaScript中的16进制字符(改进)
2011/11/21 Javascript
javascript 自定义回调函数示例代码
2014/09/26 Javascript
JQuery标签页效果的两个实例讲解(4)
2015/09/17 Javascript
JavaScript中windows.open()、windows.close()方法详解
2016/07/28 Javascript
详解AngularJS中的表单验证(推荐)
2016/11/17 Javascript
javascript 闭包详解及简单实例应用
2016/12/31 Javascript
nodejs服务搭建教程 nodejs访问本地站点文件
2017/04/07 NodeJs
JS获取短信验证码倒计时的实现代码
2017/05/22 Javascript
jQuery实现点击DIV同时点击CheckBox,并为DIV上背景色的实例
2017/12/18 jQuery
JS实现点击生成UUID的方法完整实例【基于jQuery】
2019/06/12 jQuery
JS面向对象编程基础篇(二) 封装操作实例详解
2020/03/03 Javascript
JavaScript实现沿五角星形线摆动的小圆实例详解
2020/07/28 Javascript
JavaScript 如何在浏览器中使用摄像头
2020/12/02 Javascript
Python+Selenium自动化实现分页(pagination)处理
2017/03/31 Python
朴素贝叶斯分类算法原理与Python实现与使用方法案例
2018/06/26 Python
Python实现仿射密码的思路详解
2020/04/23 Python
Sofmap官网:日本著名的数码电器专卖店
2017/05/19 全球购物
网络艺术零售业的先驱者:artrepublic
2017/09/26 全球购物
英国家用电器购物网站:Hughes
2018/02/23 全球购物
Electrolux伊莱克斯巴西商店:家用电器、小家电和配件
2018/05/23 全球购物
韩国流行时尚女装网站:Dintchina(中文)
2018/07/19 全球购物
草莓网中国:StrawberryNet中国
2020/08/17 全球购物
行政助理求职自荐信
2013/10/26 职场文书
工作自我评价分享
2013/12/01 职场文书
经典而简洁的婚礼主持词
2014/03/13 职场文书
群众路线对照检查材料思想汇报怎么写
2014/09/18 职场文书
2014年学生会主席工作总结
2014/11/07 职场文书
财务负责人岗位职责
2015/02/03 职场文书
学校后勤工作总结2015
2015/05/15 职场文书
初三英语教学反思
2016/02/15 职场文书
《圆的周长》教学反思
2016/02/17 职场文书
python开发实时可视化仪表盘的示例
2021/05/07 Python