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 10 Python
Python爬虫实例爬取网站搞笑段子
Nov 08 Python
python编程培训 python培训靠谱吗
Jan 17 Python
python中for用来遍历range函数的方法
Jun 08 Python
在Python中定义一个常量的方法
Nov 10 Python
python cumsum函数的具体使用
Jul 29 Python
Python 保持登录状态进行接口测试的方法示例
Aug 06 Python
pandas数据处理进阶详解
Oct 11 Python
python实现猜单词游戏
May 22 Python
Selenium环境变量配置(火狐浏览器)及验证实现
Dec 07 Python
Python+uiautomator2实现自动刷抖音视频功能
Apr 29 Python
Python爬虫框架之Scrapy中Spider的用法
Jun 28 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
与数据库连接
2006/10/09 PHP
php把时间戳转换成多少时间之前函数的实例
2016/11/16 PHP
JavaScript 匿名函数(anonymous function)与闭包(closure)
2011/10/04 Javascript
jquery uploadify 在FF下无效的解决办法
2014/09/26 Javascript
JavaScript插件化开发教程 (三)
2015/01/27 Javascript
45个JavaScript编程注意事项、技巧大全
2015/02/11 Javascript
JavaScript中创建字典对象(dictionary)实例
2015/03/31 Javascript
javascript实现的右下角弹窗实例
2015/04/24 Javascript
jQuery实现的网页左侧在线客服效果代码
2015/10/23 Javascript
理解Javascript的call、apply
2015/12/16 Javascript
如何用angularjs制作一个完整的表格
2016/01/21 Javascript
基于javascript实现句子翻牌网页版小游戏
2016/03/23 Javascript
AngularJS 服务详细讲解及示例代码
2016/08/17 Javascript
Vue + Webpack + Vue-loader学习教程之功能介绍篇
2017/03/14 Javascript
AngularJS路由切换实现方法分析
2017/03/17 Javascript
详解使用Vue Router导航钩子与Vuex来实现后退状态保存
2017/09/11 Javascript
vue input 输入校验字母数字组合且长度小于30的实现代码
2018/05/16 Javascript
微信小程序实现图片上传放大预览删除代码
2020/06/28 Javascript
jQuery实现的记住帐号密码功能完整示例
2019/08/03 jQuery
node.js中module模块的功能理解与用法实例分析
2020/02/14 Javascript
基于Element的组件改造的树形选择器(树形下拉框)
2020/02/27 Javascript
javascript中contains是否包含功能实现代码(扩展字符、数组、dom)
2020/04/07 Javascript
打印出python 当前全局变量和入口参数的所有属性
2009/07/01 Python
linux下python抓屏实现方法
2015/05/22 Python
python编程测试电脑开启最大线程数实例代码
2018/02/09 Python
对python中Librosa的mfcc步骤详解
2019/01/09 Python
python实现两个dict合并与计算操作示例
2019/07/01 Python
python3中利用filter函数输出小于某个数的所有回文数实例
2019/11/24 Python
PyQt5中QTableWidget如何弹出菜单的示例代码
2020/02/23 Python
详解Pycharm安装及Django安装配置指南
2020/09/15 Python
免费获得微软MCSD证书赶快行动吧!
2012/11/13 HTML / CSS
nohup的用法
2012/11/26 面试题
初三政治教学反思
2014/01/30 职场文书
购房协议书范本
2014/04/11 职场文书
观看《杨善洲》宣传教育片心得体会
2016/01/23 职场文书
Python装饰器的练习题
2021/11/23 Python