我有一个test.bmp
位图格式的文件。当查看它的属性时,文件的位深是32。这是正确的,因为文件格式应该是RGBA。
出于测试目的,我使用cv2
打开此文件,然后保存它:
img_path = os.path.join(path_to_folder, "test.bmp")
img = np.array(cv2.imread(img_path, flags=cv2.IMREAD_UNCHANGED))
当我打印形状时,我 * 丢失 * 了alpha通道上的信息。
img.shape - (1200, 1920, 3)
我再次保存图像,看看位深度是否保持不变:
out_f_name = os.path.join(save_to_test, "test_save.bmp")
cv2.imwrite(out_f_name, img)
查看保存图像的位深度时,我得到24。
这是一个问题,因为我需要32的输出深度供进一步使用。
我使用cv2
的4.7.0版本
1条答案
按热度按时间lb3vh1jj1#
我已经试过你所描述的,但我无法重现你的错误,对我来说一切都很好。OpenCV正确加载了4个通道的原始BMP,当我写图像时,结果是32位深度。
下面是我代码:
我有python 3.10.4,numpy==1.24.1和opencv-python==4.7.0.68
希望能有所帮助