我插入白色图像到彩色图像与此代码,它是确定的:
face_grey = cv.cvtColor(face, cv.COLOR_RGB2GRAY)
for row in range(0, face_grey.shape[0]):
for column in range(face_grey.shape[1]):
img_color[row + 275][column + 340] = face_grey[row][column]
plt.imshow(img_color)
但是,当我尝试用这个代码将彩色图像插入白色图像时,我得到错误:
第一个
2条答案
按热度按时间v8wbuo2f1#
彩色图像需要3个通道来表示红色、绿色和蓝色分量。
灰度图像只有一个通道-灰色。
你不能把一个3通道图像放在一个1通道图像中,就像你不能把一个3针插头放在一个单孔插座中一样。
您需要首先将灰色图像提升到3个相同的通道:
示例:
nhhxz33t2#
彩色图像的三个颜色通道rgb的形状为(n,m,3)。灰度图像的形状为(n,m,1),因为颜色信息被丢弃。错误发生在以下行中:
img_gray[row+275][column + 340]只需要一个值,因为img_gray的形状为a(height,width,1)。face[row][column]的形状为(3,)
如果执行以下操作,您将看到这一点: