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定时采集摄像头图像上传ftp服务器功能实现
Dec 23 Python
python操作 hbase 数据的方法
Dec 18 Python
python实现12306抢票及自动邮件发送提醒付款功能
Mar 08 Python
在python2.7中用numpy.reshape 对图像进行切割的方法
Dec 05 Python
Python基础学习之时间转换函数用法详解
Jun 18 Python
对django views中 request, response的常用操作详解
Jul 17 Python
Python实现的爬取豆瓣电影信息功能案例
Sep 15 Python
python3图片文件批量重命名处理
Oct 31 Python
Tensorflow Summary用法学习笔记
Jan 10 Python
Python多线程threading创建及使用方法解析
Jun 17 Python
python3 中时间戳、时间、日期的转换和加减操作
Jul 14 Python
Python使用psutil库对系统数据进行采集监控的方法
Aug 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
php获取ajax的headers方法与内容实例
2017/12/27 PHP
js关闭模态窗口刷新父页面或跳转页面
2012/12/13 Javascript
jQuery 遍历- 关于closest() 的方法介绍以及与parents()的方法区别分析
2013/04/26 Javascript
jquery validate在ie8下的bug解决方法
2013/11/13 Javascript
javascript学习笔记--数字格式类型
2014/05/22 Javascript
使用javascript实现监控视频播放并打印日志
2015/01/05 Javascript
jQuery子属性过滤选择器用法分析
2015/02/10 Javascript
js实现的四级左侧网站分类菜单实例
2015/05/06 Javascript
简单实现兼容各大浏览器的js复制内容到剪切板
2015/09/09 Javascript
原生JavaScript实现滚动条效果
2020/03/24 Javascript
onmouseover事件和onmouseout事件全面理解
2016/08/15 Javascript
原生js实现网页顶部自动下拉/收缩广告效果
2017/01/20 Javascript
nodejs模块nodemailer基本使用-邮件发送示例(支持附件)
2017/03/28 NodeJs
Vue.js 2.0 移动端拍照压缩图片预览及上传实例
2017/04/27 Javascript
用JS编写一个函数,返回数组中重复出现过的元素(实例)
2017/09/14 Javascript
使用ajax的post同步执行(实现方法)
2017/12/21 Javascript
教你如何用node连接redis的示例代码
2018/07/12 Javascript
angular6 利用 ngContentOutlet 实现组件位置交换(重排)
2018/11/02 Javascript
Javascript 关于基本类型和引用类型的个人理解
2019/11/01 Javascript
Vue数字输入框组件使用方法详解
2020/02/10 Javascript
python使用str & repr转换字符串
2016/10/13 Python
numpy排序与集合运算用法示例
2017/12/15 Python
Django基于ORM操作数据库的方法详解
2018/03/27 Python
计算机二级python学习教程(2) python语言基本语法元素
2019/05/16 Python
Python函数中参数是传递值还是引用详解
2019/07/02 Python
tensorflow使用range_input_producer多线程读取数据实例
2020/01/20 Python
PHP引擎php.ini参数优化深入讲解
2021/03/24 PHP
计算机专业应届毕业生自荐信
2013/09/26 职场文书
班组长安全职责
2014/01/05 职场文书
省优秀教师事迹材料
2014/01/30 职场文书
心理健康活动总结
2014/04/30 职场文书
励志广播稿300字(5篇)
2014/09/15 职场文书
2014年高一班主任工作总结
2014/12/05 职场文书
团代会邀请函
2015/02/02 职场文书
实习介绍信范文
2015/05/05 职场文书
详细了解MVC+proxy
2021/07/09 Java/Android