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复制目录结构脚本代码分享
Mar 06 Python
Python 爬虫图片简单实现
Jun 01 Python
Python实现的破解字符串找茬游戏算法示例
Sep 25 Python
Python3实战之爬虫抓取网易云音乐的热门评论
Oct 09 Python
python生成excel的实例代码
Nov 08 Python
Ubuntu18.04下python版本完美切换的解决方法
Jun 14 Python
详解Python 多线程 Timer定时器/延迟执行、Event事件
Jun 27 Python
python中eval与int的区别浅析
Aug 11 Python
django model的update时auto_now不被更新的原因及解决方式
Apr 01 Python
Python爬虫实现vip电影下载的示例代码
Apr 20 Python
python:解析requests返回的response(json格式)说明
Apr 30 Python
Pycharm制作搞怪弹窗的实现代码
Feb 19 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函数memory_get_usage获取PHP内存清耗量的方法
2011/12/06 PHP
探讨Hessian在PHP中的使用分析
2013/06/13 PHP
PHP判断手机是IOS还是Android
2015/12/09 PHP
PHP 将dataurl转成图片image方法总结
2016/10/14 PHP
PHP SFTP实现上传下载功能
2017/07/26 PHP
javascript实现的基于金山词霸网络翻译的代码
2010/01/15 Javascript
利用js的Node遍历找到repeater的一个字段实例介绍
2013/04/25 Javascript
输入自动提示搜索提示功能的javascript:sugggestion.js
2013/09/02 Javascript
javascript中加号(+)操作符的一些神奇作用
2014/06/06 Javascript
jquery实现的3D旋转木马特效代码分享
2015/08/25 Javascript
jquery实现触发时更新下拉列表内容的方法
2015/12/02 Javascript
三分钟带你玩转jQuery.noConflict()
2016/02/15 Javascript
JS中取二维数组中最大值的方法汇总
2016/04/17 Javascript
JS Select下拉框(支持输入模糊查询)
2017/02/04 Javascript
利用vue.js插入dom节点的方法
2017/03/15 Javascript
使用Vue-cli3.0创建的项目 如何发布npm包
2019/10/10 Javascript
微信小程序实现点赞业务
2021/02/10 Javascript
[34:08]2018DOTA2亚洲邀请赛3月29日 小组赛B组 VP VS EG
2018/03/30 DOTA
Python批量修改文件后缀的方法
2014/01/26 Python
python字符串,数值计算
2016/10/05 Python
python使用for循环计算0-100的整数的和方法
2019/02/01 Python
Django 创建/删除用户的示例代码
2019/07/24 Python
python判断链表是否有环的实例代码
2020/01/31 Python
详解Python 重学requests发起请求的基本方式
2020/02/07 Python
opencv 图像加法与图像融合的实现代码
2020/07/08 Python
迪卡侬英国官网:Decathlon英国
2017/04/08 全球购物
SmartBuyGlasses英国:购买太阳镜和眼镜
2018/01/29 全球购物
Belstaff英国官方在线商店:Belstaff.co.uk
2021/02/09 全球购物
C,C++的几个面试题小集
2013/07/13 面试题
个人委托书如何写
2014/09/25 职场文书
2014年领导班子专项整治整改方案
2014/09/28 职场文书
交通事故赔偿协议书怎么写
2014/10/04 职场文书
高中开学感言
2015/08/01 职场文书
2016年中秋节慰问信
2015/12/01 职场文书
MySQL连表查询分组去重的实现示例
2021/07/01 MySQL
Python first-order-model实现让照片动起来
2022/06/25 Python