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运算符重载用法实例分析
Jun 01 Python
python实现在控制台输入密码不显示的方法
Jul 02 Python
Python编程实现粒子群算法(PSO)详解
Nov 13 Python
python按行读取文件,去掉每行的换行符\n的实例
Apr 19 Python
python实现flappy bird小游戏
Dec 24 Python
python 随机森林算法及其优化详解
Jul 11 Python
Python中的单下划线和双下划线使用场景详解
Sep 09 Python
Django学习之文件上传与下载
Oct 06 Python
使用wxpy实现自动发送微信消息功能
Feb 28 Python
Python通过字典映射函数实现switch
Nov 06 Python
python实现跨年表白神器--你值得拥有
Jan 04 Python
总结Python变量的相关知识
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
用Socket发送电子邮件
2006/10/09 PHP
php中通过smtp发邮件的类,测试通过
2007/01/22 PHP
PHP 变量的定义方法
2010/01/26 PHP
PHP实现批量检测网站是否能够正常打开的方法
2016/08/23 PHP
js验证表单大全
2006/11/25 Javascript
使用TextRange获取输入框中光标的位置的代码
2007/03/08 Javascript
jQuery选择没有colspan属性的td的代码
2010/07/06 Javascript
五个jQuery图片画廊插件 推荐
2011/05/12 Javascript
javascript学习笔记(十五) js间歇调用和超时调用
2012/06/20 Javascript
只需20行代码就可以写出CSS覆盖率测试脚本
2013/04/24 Javascript
js动态生成指定行数的表格
2013/07/11 Javascript
js控制表单不能输入空格的小例子
2013/11/20 Javascript
原生JS实现旋转木马式图片轮播插件
2016/04/25 Javascript
Javascript将JSON日期格式化
2016/08/23 Javascript
Actionscript与javascript交互实例程序(修改)
2016/09/22 Javascript
JavaScript实现移动端轮播效果
2017/06/06 Javascript
vue awesome swiper异步加载数据出现的bug问题
2018/07/03 Javascript
jQuery实现点击自身以外区域关闭弹出层功能完整示例【改进版】
2018/07/31 jQuery
微信小程序canvas.drawImage完全显示图片问题的解决
2018/11/30 Javascript
jquery.pager.js实现分页效果
2019/07/29 jQuery
vue使用swiper实现中间大两边小的轮播图效果
2019/11/24 Javascript
微信小程序使用前置摄像头拍照
2020/10/22 Javascript
[02:32]DOTA2亚洲邀请赛 VG战队巡礼
2015/02/03 DOTA
用Python的Flask框架结合MySQL写一个内存监控程序
2015/11/07 Python
详解Python进程间通信之命名管道
2017/08/28 Python
Python数据结构与算法之图的广度优先与深度优先搜索算法示例
2017/12/14 Python
Python告诉你木马程序的键盘记录原理
2019/02/02 Python
解决python3 requests headers参数不能有中文的问题
2019/08/21 Python
Python+OpenCV+图片旋转并用原底色填充新四角的例子
2019/12/12 Python
python deque模块简单使用代码实例
2020/03/12 Python
python 通过邮件控制实现远程控制电脑操作
2020/03/16 Python
公司出纳岗位职责
2013/12/07 职场文书
幼儿园见习报告范文
2014/10/30 职场文书
青年人初次创业的“五不要”
2019/08/23 职场文书
Java 深入探究讲解简单工厂模式
2022/04/07 Java/Android
PHP 时间处理类Carbon
2022/05/20 PHP