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原始字符串(raw strings)用法实例
Oct 13 Python
python实现一次创建多级目录的方法
May 15 Python
在Python中用has_key()方法查找键是否存在的教程
May 21 Python
在Python中处理日期和时间的基本知识点整理汇总
May 22 Python
5种Python单例模式的实现方式
Jan 14 Python
Python3实现抓取javascript动态生成的html网页功能示例
Aug 22 Python
python 全局变量的import机制介绍
Sep 07 Python
对Python的zip函数妙用,旋转矩阵详解
Dec 13 Python
Python设计模式之简单工厂模式实例详解
Jan 22 Python
Pandas时间序列重采样(resample)方法中closed、label的作用详解
Dec 10 Python
PyQt5实现仿QQ贴边隐藏功能的实例代码
May 24 Python
python数据可视化JupyterLab实用扩展程序Mito
Nov 20 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
法压式咖啡之制作法
2021/03/03 冲泡冲煮
PHP 验证码的实现代码
2011/07/17 PHP
PHP加Nginx实现动态裁剪图片方案
2014/03/10 PHP
PHP对文件进行加锁、解锁实例
2015/01/23 PHP
ThinkPHP+EasyUI之ComboTree中的会计科目树形菜单实现方法
2017/06/09 PHP
PhpStorm连接服务器并实现自动上传功能
2020/12/09 PHP
Javascript-Mozilla和IE中的一个函数直接量的问题
2007/01/09 Javascript
jquery 简单导航实现代码
2009/09/11 Javascript
Jquery.Form 异步提交表单的简单实例
2014/03/03 Javascript
jquery.form.js用法之清空form的方法
2014/03/07 Javascript
js实现网页倒计时、网站已运行时间功能的代码3例
2014/04/14 Javascript
JavaScript设计模式之代理模式介绍
2014/12/28 Javascript
jquery zTree异步加载、模糊搜索简单实例分享
2016/03/24 Javascript
jQuery 操作input中radio的技巧
2016/07/18 Javascript
JS解决IOS中拍照图片预览旋转90度BUG的问题
2017/09/13 Javascript
在 vue-cli v3.0 中使用 SCSS/SASS的方法
2018/06/14 Javascript
如何从零开始手写Koa2框架
2019/03/22 Javascript
微信小程序vant弹窗组件的实现方式
2020/02/21 Javascript
vue项目前端微信JSAPI与外部H5支付相关实现过程及常见问题
2020/04/14 Javascript
Node.js API详解之 dns模块用法实例分析
2020/05/15 Javascript
js实现淘宝浏览商品放大镜功能
2020/10/28 Javascript
vue+elementui通用弹窗的实现(新增+编辑)
2021/01/07 Vue.js
python使用any判断一个对象是否为空的方法
2014/11/19 Python
利用Python进行异常值分析实例代码
2017/12/07 Python
python3 遍历删除特定后缀名文件的方法
2018/04/23 Python
解决python selenium3启动不了firefox的问题
2018/10/13 Python
利用Python检测URL状态
2019/07/31 Python
python、Matlab求定积分的实现
2019/11/20 Python
Python转换itertools.chain对象为数组的方法
2020/02/07 Python
Python基于xlrd模块处理合并单元格
2020/07/28 Python
Python用requests库爬取返回为空的解决办法
2021/02/21 Python
世界顶级户外运动品牌折扣网站:LeftLane Sports
2019/06/12 全球购物
MYSQL支持事务吗
2013/08/09 面试题
化学教学随笔感言
2014/02/19 职场文书
车辆安全隐患排查制度
2015/08/05 职场文书
Python实现滑雪小游戏
2021/09/25 Python