三通道转单通道
三通道转单通道很简单,使用cv2读取图像的时候指定读取图像格式为 cv2.IMREAD_GRAYSCALE
就可以,但是用imwrite进行存图
import cv2
import numpy as np
img = cv2.imread('./duola.jpg', cv2.IMREAD_GRAYSCALE)
cv2.imwrite('new_duola.jpg',img)
print(img.shape)
下面是关于cv2.imread()函数的参数
单通道转三通道
expand_dims(img,axis=0)
下面是关于这个函数axis插入纬度的一些理解
当处理是一纬数组时,可以插入一个纬度变成二纬,这个纬度可以插入在x轴(axis=0)或y轴(axis=1)位置,当插入在x轴原来的一纬数组数据变为列方向数据,当插入在y轴原来的数组变成行方向数据。
import numpy as np
x = np.array([1,2,3,4,5,6])
print(x)
print(x.shape)
y = np.expand_dims(x,axis=0)
print(y)
print(y.shape)
z = np.expand_dims(x,axis=1)
print(z)
print(z.shape)
numpy.concatenate((a1,a2,...), axis=0)
axis=0 表示从行上拼接
axis=1 表示从列上拼接
a=np.array([1,2,3])
b=np.array([11,22,33])
c=np.array([44,55,66])
np.concatenate((a,b,c),axis=0) # 默认情况下,axis=0可以不写
array([ 1, 2, 3, 11, 22, 33, 44, 55, 66]) #对于一维数组拼接,axis的值不影响最后的结果
a=np.array([[1,2,3],[4,5,6]])
b=np.array([[11,21,31],[7,8,9]])
np.concatenate((a,b),axis=0)
array([[ 1, 2, 3],
[ 4, 5, 6],
[11, 21, 31],
[ 7, 8, 9]])文章来源:https://www.toymoban.com/news/detail-447483.html
np.concatenate((a,b),axis=1) #axis=1表示对应行的数组进行拼接
array([[ 1, 2, 3, 11, 21, 31],
[ 4, 5, 6, 7, 8, 9]])文章来源地址https://www.toymoban.com/news/detail-447483.html
到了这里,关于python图像三通道和单通道互转的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!