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的Django框架安装全攻略
Jul 15 Python
简单掌握Python的Collections模块中counter结构的用法
Jul 07 Python
Python基础语言学习笔记总结(精华)
Nov 14 Python
Python实现PS滤镜中马赛克效果示例
Jan 20 Python
pandas 两列时间相减换算为秒的方法
Apr 20 Python
python pygame实现五子棋小游戏
Oct 26 Python
用Python将Excel数据导入到SQL Server的例子
Aug 24 Python
Python 实现将大图切片成小图,将小图组合成大图的例子
Mar 14 Python
python实现图像拼接功能
Mar 23 Python
Xadmin+rules实现多选行权限方式(级联效果)
Apr 07 Python
pandas分组聚合详解
Apr 10 Python
tensorflow实现残差网络方式(mnist数据集)
May 26 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开发中四种查询返回结果分析
2011/01/02 PHP
ecshop 批量上传(加入自定义属性)
2012/03/20 PHP
CI框架学习笔记(一) - 环境安装、基本术语和框架流程
2014/10/26 PHP
Laravel SQL语句记录方式(推荐)
2016/05/26 PHP
Jquery Validation插件防止重复提交表单的解决方法
2010/03/05 Javascript
jquery乱码与contentType属性设置问题解决方案
2013/01/07 Javascript
禁用页面部分JavaScript方法的具体实现
2013/07/31 Javascript
JavaScript中的连字符详解
2013/11/28 Javascript
解决jquery版本冲突的有效方法
2014/09/02 Javascript
jQuery对象和DOM对象之间相互转换的方法介绍
2015/02/28 Javascript
jquery实现点击变换导航样式的方法
2015/08/31 Javascript
基于JavaScript实现高德地图和百度地图提取行政区边界经纬度坐标
2016/01/22 Javascript
浅谈jQuery中hide和fadeOut的区别 show和fadeIn的区别
2016/08/18 Javascript
jQuery实现图片轮播效果代码
2016/09/27 Javascript
基于jQuery实现一个marquee无缝滚动的插件
2017/03/09 Javascript
jquery实现提示语淡入效果
2017/05/05 jQuery
Javascript 一些需要注意的细节(必看篇)
2017/07/08 Javascript
vue.js使用v-pre与v-html输出HTML操作示例
2018/07/07 Javascript
微信小程序之裁剪图片成圆形的实现代码
2018/10/11 Javascript
微信小程序实现动态列表项的顺序加载动画
2019/07/25 Javascript
[02:06]DOTA2肉山黑名单魔法终结者 敌法师中文配音鉴赏
2013/06/17 DOTA
[02:24]DOTA2亚洲邀请赛 NAVI战队出场宣传片
2015/02/07 DOTA
[02:44]重置世界,颠覆未来——DOTA2 7.23版本震撼上线
2019/12/01 DOTA
Python的print用法示例
2014/02/11 Python
对Pandas MultiIndex(多重索引)详解
2018/11/16 Python
Python面向对象程序设计OOP入门教程【类,实例,继承,重载等】
2019/01/05 Python
使用Python制作简单的小程序IP查看器功能
2019/04/16 Python
简单了解Django应用app及分布式路由
2019/07/24 Python
python海龟绘图之画国旗实例代码
2020/11/11 Python
CSS3媒体查询Media Queries基础学习教程
2016/02/29 HTML / CSS
北美女性服装零售连锁店:maurices
2019/06/12 全球购物
新闻网站实习自我鉴定
2013/09/25 职场文书
大学生最新职业生涯规划书范文
2014/01/12 职场文书
人民调解协议书范本
2014/10/11 职场文书
如何用PHP实现多线程编程
2021/05/26 PHP
spring 项目实现限流方法示例
2022/07/15 Java/Android