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交换变量
Sep 06 Python
Python库urllib与urllib2主要区别分析
Jul 13 Python
Python的Twisted框架上手前所必须了解的异步编程思想
May 25 Python
python中文件变化监控示例(watchdog)
Oct 16 Python
Python 十六进制整数与ASCii编码字符串相互转换方法
Jul 09 Python
win10下tensorflow和matplotlib安装教程
Sep 19 Python
python后端接收前端回传的文件方法
Jan 02 Python
python elasticsearch环境搭建详解
Sep 02 Python
python 实现让字典的value 成为列表
Dec 16 Python
详解Python中字符串前“b”,“r”,“u”,“f”的作用
Dec 18 Python
浅谈django 模型类使用save()方法的好处与注意事项
Mar 28 Python
python中pyplot基础图标函数整理
Nov 10 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实现的漂亮分页方法
2014/04/17 PHP
ThinkPHP安装和设置
2015/07/27 PHP
非集成环境的php运行环境(Apache配置、Mysql)搭建安装图文教程
2016/04/12 PHP
thinkPHP3.2.3结合Laypage实现的分页功能示例
2018/05/28 PHP
Smarty模板变量与调节器实例详解
2019/07/20 PHP
CSS心形加载的动画源码的实现
2021/03/09 HTML / CSS
JavaScript 参考教程
2006/12/29 Javascript
使用Microsoft Ajax Minifier减小JavaScript文件大小的方法
2010/04/01 Javascript
让js弹出窗口居前显示的实现方法
2013/07/10 Javascript
javascript + jquery实现定时修改文章标题
2014/03/19 Javascript
javascript面向对象快速入门实例
2015/01/13 Javascript
浅析jQuery Mobile的初始化事件
2015/12/03 Javascript
js 简易版滚动条实例(适用于移动端H5开发)
2017/06/26 Javascript
jQuery选择器特殊字符与属性空格问题
2017/08/14 jQuery
Angular中的$watch方法详解
2017/09/18 Javascript
vue升级之路之vue-router的使用教程
2018/08/14 Javascript
JS高阶函数原理与用法实例分析
2019/01/15 Javascript
layui-tree实现Ajax异步请求后动态添加节点的方法
2019/09/23 Javascript
vscode 插件开发 + vue的操作方法
2020/06/05 Javascript
vue实现整屏滚动切换
2020/06/29 Javascript
python使用cookie库操保存cookie详解
2014/03/03 Python
一个基于flask的web应用诞生 用户注册功能开发(5)
2017/04/11 Python
Python标准库之collections包的使用教程
2017/04/27 Python
Zookeeper接口kazoo实例解析
2018/01/22 Python
python+pandas生成指定日期和重采样的方法
2018/04/11 Python
Python OpenCV利用笔记本摄像头实现人脸检测
2020/08/20 Python
浅谈django channels 路由误导
2020/05/28 Python
HTML5 MiranaVideo播放器 (代码开源)
2010/06/11 HTML / CSS
竞聘医务工作人员的自我评价分享
2013/11/04 职场文书
专科文秘应届生求职信
2013/11/18 职场文书
端午节粽子促销活动方案
2014/02/02 职场文书
学子宴致辞大全
2015/07/27 职场文书
机关干部正风肃纪心得体会
2016/01/15 职场文书
又涨知识了,自律到底多重要?
2019/06/27 职场文书
《王者天下》第4季首话新剧照 4月9日正式开播
2022/04/07 日漫
docker 制作mysql镜像并自动安装
2022/05/20 Servers