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中的继承和多态的概念
Apr 27 Python
解决Python中字符串和数字拼接报错的方法
Oct 23 Python
Python 字典与字符串的互转实例
Jan 13 Python
Linux下多个Python版本安装教程
Aug 15 Python
Python使用matplotlib绘制随机漫步图
Aug 27 Python
Python实现将多个空格换为一个空格.md的方法
Dec 20 Python
python实现大量图片重命名
Mar 23 Python
Tensorflow读取并输出已保存模型的权重数值方式
Jan 04 Python
Python yield的用法实例分析
Mar 06 Python
Django自定义全局403、404、500错误页面的示例代码
Mar 08 Python
Python字符串格式化常用手段及注意事项
Jun 17 Python
Python 实现一个简单的web服务器
Jan 03 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函数之日期时间函数date()使用详解
2013/09/09 PHP
Codeigniter实现智能裁剪图片的方法
2014/06/12 PHP
javascript动态添加表格数据行(ASP后台数据库保存例子)
2010/05/08 Javascript
表单JS弹出填写提示效果代码
2011/04/16 Javascript
jquery学习总结(超级详细)
2014/09/04 Javascript
封装了jQuery的Ajax请求全局配置
2015/02/05 Javascript
jQuery实现的数值范围range2dslider选取插件特效多款代码分享
2015/08/27 Javascript
AngularJS手动表单验证
2016/02/01 Javascript
AngularJS中的包含详细介绍及实现示例
2016/07/28 Javascript
一个Js文件函数中调用另一个Js文件函数的方法演示
2017/08/14 Javascript
jquery实现限制textarea输入字数的方法
2017/09/06 jQuery
详解动画插件wow.js的使用方法
2017/09/13 Javascript
解决select2在bootstrap modal中不能正常使用的问题
2018/08/09 Javascript
浅谈Angular7 项目开发总结
2018/12/19 Javascript
jQuery zTree插件使用简单教程
2019/08/16 jQuery
关于ckeditor在bootstrap中modal中弹框无法输入的解决方法
2019/09/11 Javascript
vue3.0生命周期的示例代码
2020/09/24 Javascript
[02:42]DOTA2英雄基础教程 杰奇洛
2013/12/23 DOTA
Pandas中DataFrame交换列顺序的方法实现
2020/12/14 Python
CSS3实现跳动的动画效果
2016/09/12 HTML / CSS
斯凯奇澳大利亚官网:SKECHERS澳大利亚
2018/03/31 全球购物
如何利用cmp命令比较文件
2013/09/23 面试题
90后毕业生的求职信范文
2013/09/21 职场文书
求职简历自荐信
2013/10/20 职场文书
木工主管岗位职责
2013/12/08 职场文书
销售顾问岗位职责
2014/02/25 职场文书
四川省传达学习贯彻党的群众路线教育实践活动总结大会精神新闻稿
2014/10/26 职场文书
2014年图书室工作总结
2014/12/09 职场文书
助学感谢信范文
2015/01/21 职场文书
检讨书范文1000字
2015/01/28 职场文书
2015年全国爱耳日活动总结
2015/02/27 职场文书
通知范文怎么写
2015/04/16 职场文书
Vue CLI中模式与环境变量的深入详解
2021/05/30 Vue.js
python实现Nao机器人的单目测距
2021/09/04 Python
Python实现日志实时监测的示例详解
2022/04/06 Python
Python序列化模块JSON与Pickle
2022/06/05 Python