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 中文字符串的处理实现代码
Oct 25 Python
python的id()函数解密过程
Dec 25 Python
python实现计算资源图标crc值的方法
Oct 05 Python
python基于urllib实现按照百度音乐分类下载mp3的方法
May 25 Python
给Python入门者的一些编程建议
Jun 15 Python
python中break、continue 、exit() 、pass终止循环的区别详解
Jul 08 Python
基于python的itchat库实现微信聊天机器人(推荐)
Oct 29 Python
Python中使用socks5设置全局代理的方法示例
Apr 15 Python
Python读取JSON数据操作实例解析
May 18 Python
Python新建项目自动添加介绍和utf-8编码的方法
Dec 26 Python
python中四舍五入的正确打开方式
Jan 18 Python
pygame面向对象的飞行小鸟实现(Flappy bird)
Apr 01 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 魔术方法使用说明
2009/10/20 PHP
PHP获取youku视频真实flv文件地址的方法
2014/12/23 PHP
PHP实现中文圆形印章特效
2015/06/19 PHP
php中简单的对称加密算法实现
2017/01/05 PHP
PHP实现绘制二叉树图形显示功能详解【包括二叉搜索树、平衡树及红黑树】
2017/11/16 PHP
基于CI(CodeIgniter)框架实现购物车功能的方法
2018/04/09 PHP
laravel validate 设置为中文的例子(验证提示为中文)
2019/09/29 PHP
javascript网页关闭时提醒效果脚本
2008/10/22 Javascript
Extjs ajax同步请求时post方式参数发送方式
2009/08/05 Javascript
基于jQuery实现响应式圆形图片轮播特效
2015/11/25 Javascript
jQuery配合coin-slider插件制作幻灯片效果的流程解析
2016/05/13 Javascript
jQuery Mobile动态刷新页面样式的实现方法
2016/05/28 Javascript
jQuery Ajax Post 回调函数不执行问题的解决方法
2016/08/15 Javascript
JavaScript对象创建模式实例汇总
2016/10/03 Javascript
详解webpack进阶之插件篇
2017/07/06 Javascript
JS设置自定义快捷键并实现图片上下左右移动
2019/10/17 Javascript
Python pickle类库介绍(对象序列化和反序列化)
2014/11/21 Python
Python开发的实用计算器完整实例
2017/05/10 Python
Python实现类的创建与使用方法示例
2017/07/25 Python
Python入门之三角函数sin()函数实例详解
2017/11/08 Python
python在线编译器的简单原理及简单实现代码
2018/02/02 Python
python pandas cumsum求累计次数的用法
2019/07/29 Python
导入tensorflow时报错:cannot import name 'abs'的解决
2019/10/10 Python
tensorflow转换ckpt为savermodel模型的实现
2020/05/25 Python
CSS3绘制圆角矩形的简单示例
2015/09/28 HTML / CSS
CSS3实现翘边的阴影效果的代码示例
2016/06/13 HTML / CSS
HTML文本属性&颜色控制属性的实现
2019/12/17 HTML / CSS
澳大利亚家用电器在线商店:Billy Guyatts
2020/05/05 全球购物
写一个在SQL Server创建表的SQL语句
2012/03/10 面试题
亲戚结婚的请假条
2014/02/11 职场文书
公司年会抽奖活动主持词
2014/03/31 职场文书
2014年关工委工作总结
2014/11/17 职场文书
2015年大学元旦晚会活动策划书
2014/12/09 职场文书
教师文明餐桌光盘行动倡议书
2015/04/28 职场文书
如何书写民事调解协议书?
2019/06/25 职场文书
Nginx解决403 forbidden的完整步骤
2021/04/01 Servers