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中用altzone()方法处理时区的教程
May 22 Python
Python中二维列表如何获取子区域元素的组成
Jan 19 Python
python编程之requests在网络请求中添加cookies参数方法详解
Oct 25 Python
Python删除n行后的其他行方法
Jan 28 Python
Python数据报表之Excel操作模块用法分析
Mar 11 Python
opencv3/Python 稠密光流calcOpticalFlowFarneback详解
Dec 11 Python
python GUI框架pyqt5 对图片进行流式布局的方法(瀑布流flowlayout)
Mar 12 Python
Django admin 实现search_fields精确查询实例
Mar 30 Python
浅谈python多线程和多线程变量共享问题介绍
Apr 17 Python
一些关于python 装饰器的个人理解
Aug 31 Python
python 利用百度API识别图片文字(多线程版)
Dec 14 Python
如何在python中实现ECDSA你知道吗
Nov 23 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
dedecms防止FCK乱格式化你的代码的修改方法
2007/03/17 PHP
PHP JSON 数据解析代码
2010/05/26 PHP
PHP下通过QRCode类库创建中间带网站LOGO的二维码
2014/07/12 PHP
基于PHP的简单采集数据入库程序【续篇】
2014/07/30 PHP
使用PHP免费发送定时短信的实例
2016/10/24 PHP
js 判断脚本加载完毕的代码
2011/07/13 Javascript
20款效果非常棒的 jQuery 插件小结分享
2011/11/18 Javascript
浅析JQuery获取和设置Select选项的常用方法总结
2013/07/04 Javascript
js冒泡、捕获事件及阻止冒泡方法详细总结
2014/05/08 Javascript
IE下使用jQuery重置iframe地址时内存泄露问题解决办法
2015/02/05 Javascript
jquery 插件实现瀑布流图片展示实例
2015/04/03 Javascript
在JavaScript中处理时间之getHours()方法的使用
2015/06/10 Javascript
jQuery插件支持同一页面被多次调用
2016/02/14 Javascript
jquery解析XML及获取XML节点名称的实现代码
2016/05/18 Javascript
用JavaScript获取页面文档内容的实现代码
2016/06/10 Javascript
微信小程序教程之本地图片上传(leancloud)实例详解
2016/11/16 Javascript
JavaScript奇技淫巧44招【实用】
2016/12/11 Javascript
关于Javascript中document.cookie的使用
2017/03/08 Javascript
vue中使用echarts制作圆环图的实例代码
2018/07/27 Javascript
微信小程序按钮点击动画效果的实现
2019/09/04 Javascript
使用layui实现的左侧菜单栏以及动态操作tab项方法
2019/09/10 Javascript
Python二叉搜索树与双向链表转换实现方法
2016/04/29 Python
Python新手们容易犯的几个错误总结
2017/04/01 Python
python使用mysql数据库示例代码
2017/05/21 Python
Python写出新冠状病毒确诊人数地图的方法
2020/02/12 Python
Python+PyQt5实现灭霸响指功能
2020/05/25 Python
canvas实现扭蛋机动画效果的示例代码
2018/10/17 HTML / CSS
英国床垫和床架购物网站:Bedman
2019/11/04 全球购物
一道SQL面试题
2012/12/31 面试题
GWT都有什么特性
2016/12/02 面试题
英文简历中的自我评价用语
2013/12/09 职场文书
平安工地建设方案
2014/05/06 职场文书
个人批评与自我批评材料
2014/10/17 职场文书
Nginx Rewrite使用场景及配置方法解析
2021/04/01 Servers
52条SQL语句教你性能优化
2021/05/25 MySQL
解决redis批量删除key值的问题
2022/03/23 Redis