我正在尝试在 Mac 上的 Jupyter Notebook 中使用 OpenCV 操作后保存过滤/混合图像。一切都很好,直到我尝试保存图像。我尝试将其保存为 .jpg、.bmp。和.png。我已经尝试了其中的每一个,并将图像乘以 255,而不是乘以。结果保存的文件是全黑还是全白,这取决于我是否乘以 255。im1 = cv2.imread(im1_file, cv2.IMREAD_GRAYSCALE)im1 = cv2.cvtColor(im1, cv2.COLOR_BGR2GRAY) / 255.0# filtering and cropping operationscv2.imwrite('hybrid_image.jpg', cropped_image*255)我还尝试将其“转换”回 bgr 图像。但它给出了一个错误'depth' is 6 (CV_64F)cropped_image_255 = cropped_image*255.0convertedimage = cv2.cvtColor(cropped_image_255, cv2.COLOR_GRAY2BGR)cv2.imwrite('hybrid_image.bmp', convertedimage)
1 回答
一只萌萌小番薯
TA贡献1795条经验 获得超7个赞
解决您的问题的方法是在保存之前将 Image 类型转换为无符号 8 位整数。
您可以替换以下行:
cv2.imwrite('hybrid_image.jpg', cropped_image*255)
和
cropped_image = cropped_image * 255 # Still (can be) floats
cv2.imwrite('hybrid_image.jpg', cropped_image.astype(np.uint8))
请确保在转换为np.uint8您的图像之前没有任何高于 255 的数字。否则,OpenCV 会将它们钳制为白色像素(255 值)。
添加回答
举报
0/150
提交
取消
