旋转时得到黑白图像?

时间:2019-06-03 15:29:10

标签: rgb cv2 image-rotation

我想将图像旋转45度。我已经为它定义了一个函数。当我在RGB图像上运行它时,它会另存为灰度图像吗?

def rotateImage(image, angle):
    row,col = image.shape
    center=tuple(np.array([row,col])/2)
    rot_mat = cv2.getRotationMatrix2D(center,angle,1.0)
    new_image = cv2.warpAffine(image, rot_mat, (col,row))
    return new_image


rotate_img_path = '../data/rotate_45_img'
rotate_mask_path = '../data/rotate_45_mask'
real_img_path = '../data/img'
real_mask_path = '../data/mask'


for img in os.listdir(real_img_path):
    edge_img = cv2.imread(os.path.join(real_img_path,img))
    edges = rotateImage(edge_img, 45)
    cv2.imwrite(os.path.join(rotate_img_path, img), edges)
print("Finished Copying images")

for img in os.listdir(real_mask_path):
    edge_img = cv2.imread(os.path.join(real_mask_path,img))
    edges = rotateImage(edge_img, 45)
    cv2.imwrite(os.path.join(rotate_mask_path, img), edges)
#     cv2.imwrite('edge_' + '.jpg', edges)
print("Finished Copying masks")

1 个答案:

答案 0 :(得分:1)

这里的线索可能是

row,col = image.shape

,如果image是三维(即彩色的,分别具有B,G和R的通道)而不是二维(即灰度),则会产生错误。除非您正在读取未显示代码的RGB图像,否则这表明您的图像已经是灰度的。