RGB图像从4×6的单通道数据怎么一步步转成3×4×6和3×6×4的numpy数组?

以下是使用`numpy`库处理宽6高4的RGB彩色图像,并按要求转换其像素点数据结构的详细步骤及代码示例: ### 1. 用`array`函数把二维列表转为二维R, G, B(大小均4行6列) 首先,需要创建表示红(R)、绿(G)、蓝(B)通道的二维列表,然后使用`numpy`的`array`函数将这些二维列表转换为二维`numpy`数组。 ### 2. 用`stack`函数拼接成3x4x6三维 使用`numpy`的`stack`函数将红、绿、蓝三个二维数组沿着新的轴(这里是第0轴)进行拼接,得到一个3x4x6的三维数组。 ### 3. 用`transpose`转置成3x6x4 使用`numpy`的`transpose`函数将3x4x6的三维数组转置为3x6x4的三维数组。 以下是具体的代码实现: ```python import numpy as np # 示例的二维列表表示R, G, B通道 R = [ [10, 20, 30, 40, 50, 60], [70, 80, 90, 100, 110, 120], [130, 140, 150, 160, 170, 180], [190, 200, 210, 220, 230, 240] ] G = [ [25, 35, 45, 55, 65, 75], [85, 95, 105, 115, 125, 135], [145, 155, 165, 175, 185, 195], [205, 215, 225, 235, 245, 255] ] B = [ [30, 40, 50, 60, 70, 80], [90, 100, 110, 120, 130, 140], [150, 160, 170, 180, 190, 200], [210, 220, 230, 240, 250, 255] ] # (1) 用array函数把二维列表转为二维R, G, B R_array = np.array(R, dtype=np.uint8) G_array = np.array(G, dtype=np.uint8) B_array = np.array(B, dtype=np.uint8) # (2) 用stack函数拼接成3x4x6三维 CxHxW = np.stack((R_array, G_array, B_array), axis=0) # (3) 用transpose转置成3x6x4 CxWxH = CxHxW.transpose(0, 2, 1) print("CxHxW shape:", CxHxW.shape) print("CxWxH shape:", CxWxH.shape) ``` 在上述代码中,首先定义了表示红、绿、蓝通道的二维列表`R`、`G`、`B`,然后使用`np.array`函数将它们转换为二维`numpy`数组。接着,使用`np.stack`函数将这三个二维数组沿着第0轴拼接成一个3x4x6的三维数组`CxHxW`。最后,使用`transpose`函数将`CxHxW`转置为3x6x4的三维数组`CxWxH`。

创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考

Python内容推荐

python 实现单通道转3通道

python 实现单通道转3通道

今天小编就为大家分享一篇python 实现单通道转3通道,具有很好的参考价值,希望对大家有所帮助。一起跟随小编过来看看吧

python 实现将Numpy数组保存为图像

python 实现将Numpy数组保存为图像

第一种方案 可以使用scipy.misc,代码如下: import scipy.misc misc.imsave('out.jpg', image_array) 上面的scipy版本会标准化所有图像,以便min(数据)变成黑色,max(数据)变成白色。如果数据应该是精确的灰度级或准确的RGB通道,则解决方案为: import scipy.misc misc.toimage(image_array, cmin=0.0, cmax=...).save('outfile.jpg') 第二种方案 使用PIL。 给定一个numpy数组”A”: from PIL import Image im =

Python图像灰度变换及图像数组操作

Python图像灰度变换及图像数组操作

使用python以及numpy通过直接操作图像数组完成一系列基本的图像处理 numpy简介: NumPy是一个非常有名的 Python 科学计算工具包,其中包含了大量有用的工具,比如数组对象(用来表示向量、矩阵、图像等)以及线性代数函数。 数组对象可以实现数组中重要的操作,比如矩阵乘积、转置、解方程系统、向量乘积和归一化。这为图像变形、对变化进行建模、图像分类、图像聚类等提供了基础。 在上一篇python基本图像操作中,当载入图像时,通过调用 array() 方法将图像转换成NumPy的数组对象。NumPy 中的数组对象是多维的,可以用来表示向量、矩阵和图像。通过对图像的数组进行直接操作,就可

Python 将RGB图像转换为Pytho灰度图像的实例

Python 将RGB图像转换为Pytho灰度图像的实例

下面小编就为大家带来一篇Python 将RGB图像转换为Pytho灰度图像的实例。具有很好的参考价值。希望对大家有所帮助。一起跟随小编过来看看吧

Python实现计算图像RGB均值方式

Python实现计算图像RGB均值方式

主要介绍了Python实现计算图像RGB均值方式,具有很好的参考价值,希望对大家有所帮助。一起跟随小编过来看看吧

python-OpenCV 实现将数组转换成灰度图和彩图

python-OpenCV 实现将数组转换成灰度图和彩图

今天小编就为大家分享一篇python-OpenCV 实现将数组转换成灰度图和彩图,具有很好的参考价值,希望对大家有所帮助。一起跟随小编过来看看吧

python3用PIL把图片转换为RGB图片的实例

python3用PIL把图片转换为RGB图片的实例

今天小编就为大家分享一篇python3用PIL把图片转换为RGB图片的实例,具有很好的参考价值,希望对大家有所帮助。一起跟随小编过来看看吧

python实现yuv转RGB图片程序

python实现yuv转RGB图片程序

python实现yuv转RGB图片程序,更多说明访问我的博客https://blog.csdn.net/bvngh3247

python、PyTorch图像读取与numpy转换实例

python、PyTorch图像读取与numpy转换实例

今天小编就为大家分享一篇python、PyTorch图像读取与numpy转换实例,具有很好的参考价值,希望对大家有所帮助。一起跟随小编过来看看吧

python基础教程:Python 将RGB图像转换为Pytho灰度图像的实例

python基础教程:Python 将RGB图像转换为Pytho灰度图像的实例

下面小编就为大家带来一篇Python 将RGB图像转换为Pytho灰度图像的实例。具有很好的参考价值。希望对大家有所帮助。一起跟随小编过来看看吧 问题: 我正尝试使用matplotlib读取RGB图像并将其转换为灰度。 在matlab中,我使用这个: img = rgb2gray(imread('image.png')); 在matplotlib tutorial中他们没有覆盖它。他们只是在图像中阅读 import matplotlib.image as mpimg img = mpimg.imread('image.png') 然后他们切片数组,但是这不是从我所了解的将RGB转换为灰度。

Python实现图片切割拼接实验——numpy数组的脑洞玩法

Python实现图片切割拼接实验——numpy数组的脑洞玩法

视频资料:https://tv.sohu.com/v/dXMvMzM1OTQyMDI2LzExMzQxMDY1MS5zaHRtbA==.html 视频的内容介绍:一张照片,横着切成若干条,并且没有打乱,随后隔条分成了两份,然后把这两份各自拼接在一起,出现了跟两张原图一模一样的图片,将两张图竖着切成若干条,并且没有打乱,随后隔条分成了四份,出现了四张跟原图一模一样的图片(等比例缩小) 目标:使用Python实现图片切割拼接实验 效果:效果如下图所示,证实这个实验是真的,只不过处理后的像素降低了 原理: Numpy对图像的处理实际上就是对ndarray的处理。图像和ndarray又有什么关系呢?

opencv-python的RGB与BGR互转方式

opencv-python的RGB与BGR互转方式

主要介绍了opencv-python的RGB与BGR互转方式,具有很好的参考价值,希望对大家有所 帮助。一起跟随小编过来看看吧

Python图片转换成矩阵,矩阵数据转换成图片的实例

Python图片转换成矩阵,矩阵数据转换成图片的实例

今天小编就为大家分享一篇Python图片转换成矩阵,矩阵数据转换成图片的实例,具有很好的参考价值,希望对大家有所帮助。一起跟随小编过来看看吧

Python-openCV读RGB通道图实例

Python-openCV读RGB通道图实例

今天小编就为大家分享一篇Python-openCV读RGB通道图实例,具有很好的参考价值,希望对大家有所帮助。一起跟随小编过来看看吧

Pytorch自己加载单通道图片用作数据集训练的实例

Pytorch自己加载单通道图片用作数据集训练的实例

今天小编就为大家分享一篇Pytorch自己加载单通道图片用作数据集训练的实例,具有很好的参考价值,希望对大家有所帮助。一起跟随小编过来看看吧

第二节 numpy数组操作

第二节 numpy数组操作

import cv2 as cv import numpy as np def access_pixels(image): #image.shape输出了image的三维数据:高,宽,通道 print(image.shape) height = image.shape[0] width = image.shape[1] channels = image.shape[2] print("height :%s, width :%s,channels : %s" %(width,height,channels)) for row in range(height): #从0到height循环 类比于for(int row =0; row<height;row++) for col in range(width): for c in range(channels): pv = image[row,col,c]#获取位于[row,col,c]坐标的像素值 image[row,col,c] = 255 -pv cv.imshow("1",image) def creat_image(): """"" #建立多通道数组 #zeros(shape, dtype=float, order='C') #依据给定形状和类型(shape, dtype, order])返回一个新的元素全部为0的数组(类比np.ones())。 #参数一:形状(即[row,col,channels]) #参数二:数据类型(默认是np.float64) img = np.zeros([400,400,3],np.uint8) #这个输出的应该是400个400*3矩阵(400行400列每列3通道矩阵) #ones(shape,dtype):依据给定形状和类型(shape,dtype),返回一个新的元素全部为1的数据 举个例子:print np.ones((4,5,3),dtype=np.uint8) 输出的是4(height)个5(width)X3(channel)矩阵,且所有元素为1 [ [1,1,1] [1,1,1] [1,1,1] [1,1,1] [1,1,1] [1,1,1] [1,1,1] [1,1,1] [1,1,1] [1,1,1] [1,1,1] [1,1,1] [1,1,1] [1,1,1] [1,1,1] [1,1,1] [1,1,1] [1,1,1] [1,1,1] [1,1,1] ] #该句话的意思就是令img的第2通道(G通道)赋值为255 img[:,:, 2] =np.ones([400, 400])*255 cv.imshow("2",img) """"" #建立单通道数组 img = np.zeros([400,400,1],np.uint8) #img[:,:,0] = np.ones([400,400])*127 #对于单通道 也可以这么做,也就是单通道矩阵像素*127 ;但是如果是多通道,则是三通道矩阵 # 的像素*127 #img = img*127 与img.fill(127)作用是一样的 img.fill(127) cv.imshow("3",img) # cv.imwrite("E:/opencv/picture/img111.jpg",img) src = cv.imread("E:/opencv/picture/test1.jpg") cv.imshow("window",src) t1 = cv.getCPUTickCount()#cv.getCPUTickCount 获取当前cpu到该位置所用的时间的总数 creat_image() t2 = cv.getCPUTickCount() time = (t2-t1)/cv.getTickFrequency()#计算得到creat_image()所用的时间(单位是us) print("time : %s ms"%(time*1000)) cv.waitKey(0) 小结: 1. image.shape 得到image的外形尺寸:height,width,channel,其中image[0]是height, image[1]是width,, image[2]是channel 2. 逐个像素点改变像素值 利用三个for嵌套 3. 创建image的两种方法: np.zeros(shape, dtype=float, order='C') np.ones(shape,dtype) 当然也可以建立一个数组: hsv = np.array([20,30,33]) 建立了一个3维数组 4. 给图片的某个通道赋值: img[;,;,2] =np.ones([400,400])*255 补充: 我们利用access_pixel修改像素耗时太长了,这显然是我们不想看到的。下面用一句api指令就可以替代我们defination def inverse(image): dst = cv.bitwise_not(image) cv.imshow("4",dst) cv.bitwise_not(src) : 是对二进制数据进行“非”操作,即对图像(灰度图像或彩色图像均可)每个像素值进行二进制“非”操作,~1=0,~0=1 然后我们再计算时间就会发现节省了很多时间。 5. 计算某段代码所用时间 t1 = cv.getCPUTickCount() api指令。。。 t2 = cv.getCPUTickCount() time = (t2-t1)/cv.getTickFrequency()#计算得到

numpy-基于numpy实现的图像处理算法之Adapt-RGB-decorator.zip

numpy-基于numpy实现的图像处理算法之Adapt-RGB-decorator.zip

numpy numpy_基于numpy实现的图像处理算法之Adapt_RGB_decorator

opencv与numpy的图像基本操作

opencv与numpy的图像基本操作

主要介绍了opencv与numpy的图像基本操作,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧

使用numpy和PIL进行简单的图像处理方法

使用numpy和PIL进行简单的图像处理方法

今天小编就为大家分享一篇使用numpy和PIL进行简单的图像处理方法,具有很好的参考价值,希望对大家有所帮助。一起跟随小编过来看看吧

numpy-基于numpy实现的图像处理算法之RGB2HSV.zip

numpy-基于numpy实现的图像处理算法之RGB2HSV.zip

numpy numpy_基于numpy实现的图像处理算法之RGB2HSV