当前位置: 首页 > news >正文

图像处理:单通道转为3通道

在处理图像时,经常遇到需要把单通道的图像转换为3通道的rgb图像,大部分情况下,简单的重复堆叠已经可以满足。下面总结了两种简单的转换方法:
一、np.stack()函数

img = np.stack((img,) * 3, axis=-1)

np.stack([arrays1,array2,array3],axis=0)。第二个参数是axis,这个参数表示从哪一个维度进行堆叠以及堆叠的内容,这个维度是相对于堆叠的数组来说的。整个函数的输出为一个新数组。
在这里插入图片描述
在pytorch中,一般都是channel first。而axis=-1表示对最后一维进行操作。原始的y的维数为(2,3),那么堆叠以后维数为(2,3,3)

参考自:

https://blog.csdn.net/weixin_42059276/article/details/106837795

https://blog.csdn.net/weixin_44201525/article/details/109769214

二、 tf.tile()
tile() 平铺之意,用于在同一维度上的复制
在tensorflow中,通常是channel last。
函数定义:

tf.tile(
    input,
    multiples,
    name=None
)

input是待扩展的张量,multiples是扩展方法。
假如input是一个3维的张量。那么mutiples就必须是一个1x3的1维张量。这个张量的三个值依次表示input的第1,第2,第3维数据扩展几倍。

import tensorflow as tf

a = tf.constant([[1, 2], [3, 4], [5, 6]], dtype=tf.float32)
a1 = tf.tile(a, [2, 3])
with tf.Session() as sess:
    print(sess.run(a))
    print(sess.run(tf.shape(a)))
    print(sess.run(a1))
    print(sess.run(tf.shape(a1)))
=======
[[1. 2.]
 [3. 4.]
 [5. 6.]]
[3 2]
[[1. 2. 1. 2. 1. 2.]
 [3. 4. 3. 4. 3. 4.]
 [5. 6. 5. 6. 5. 6.]
 [1. 2. 1. 2. 1. 2.]
 [3. 4. 3. 4. 3. 4.]
 [5. 6. 5. 6. 5. 6.]]
[6 6]

https://blog.csdn.net/tsyccnh/article/details/82459859

相关文章:

  • impala sql语法
  • 牛视系统源码定制,抖音矩阵系统定制开发。come here
  • 16 C++设计模式之职责链(Chain of Responsibility)模式
  • Kubernetes inotify watch 耗尽
  • LeetCode刷题(12)
  • linux系统命令-查看内存使用情况
  • (附源码)ssm经济信息门户网站 毕业设计 141634
  • 【艾思科技aisisoft.com.cn】物联网智能水族箱系统平台
  • 前后端数据接口协作提效实践
  • 分布式链路追踪技术
  • 日志收集分析平台项目-2-项目原理
  • 模型效果测试
  • 【Prism系列】Region的用法
  • 51单片机
  • 工匠精神育种陈温福培育一粒好种子 国稻种芯百团计划行动
  • 9月CHINA-PUB-OPENDAY技术沙龙——IPHONE
  • 【每日笔记】【Go学习笔记】2019-01-10 codis proxy处理流程
  • ECMAScript入门(七)--Module语法
  • Elasticsearch 参考指南(升级前重新索引)
  • ES学习笔记(10)--ES6中的函数和数组补漏
  • HTTP中GET与POST的区别 99%的错误认识
  • IOS评论框不贴底(ios12新bug)
  • Java的Interrupt与线程中断
  • Java基本数据类型之Number
  • leetcode388. Longest Absolute File Path
  • Netty 4.1 源代码学习:线程模型
  • Unix命令
  • 从地狱到天堂,Node 回调向 async/await 转变
  • 深度学习入门:10门免费线上课程推荐
  • 时间复杂度与空间复杂度分析
  • 使用 5W1H 写出高可读的 Git Commit Message
  • 应用生命周期终极 DevOps 工具包
  • 用 vue 组件自定义 v-model, 实现一个 Tab 组件。
  • ​iOS实时查看App运行日志
  • ​你们这样子,耽误我的工作进度怎么办?
  • ​软考-高级-系统架构设计师教程(清华第2版)【第1章-绪论-思维导图】​
  • !$boo在php中什么意思,php前戏
  • # 安徽锐锋科技IDMS系统简介
  • #Linux杂记--将Python3的源码编译为.so文件方法与Linux环境下的交叉编译方法
  • (10)工业界推荐系统-小红书推荐场景及内部实践【排序模型的特征】
  • (day 2)JavaScript学习笔记(基础之变量、常量和注释)
  • (PWM呼吸灯)合泰开发板HT66F2390-----点灯大师
  • (Redis使用系列) Springboot 实现Redis 同数据源动态切换db 八
  • (附源码)apringboot计算机专业大学生就业指南 毕业设计061355
  • (三)c52学习之旅-点亮LED灯
  • (十七)devops持续集成开发——使用jenkins流水线pipeline方式发布一个微服务项目
  • (四)搭建容器云管理平台笔记—安装ETCD(不使用证书)
  • (一)appium-desktop定位元素原理
  • (转)JAVA中的堆栈
  • (转)Linux整合apache和tomcat构建Web服务器
  • .cn根服务器被攻击之后
  • .NET MVC、 WebAPI、 WebService【ws】、NVVM、WCF、Remoting
  • .NET/C# 编译期能确定的字符串会在字符串暂存池中不会被 GC 垃圾回收掉
  • .NET/C# 获取一个正在运行的进程的命令行参数
  • ?php echo ?,?php echo Hello world!;?