opencv 保存过滤后的图像

我正在尝试在 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 operations


cv2.imwrite('hybrid_image.jpg', cropped_image*255)


我还尝试将其“转换”回 bgr 图像。但它给出了一个错误'depth' is 6 (CV_64F)


cropped_image_255 = cropped_image*255.0

convertedimage = cv2.cvtColor(cropped_image_255, cv2.COLOR_GRAY2BGR)

cv2.imwrite('hybrid_image.bmp', convertedimage)


呼如林
浏览 254回答 1
1回答

一只萌萌小番薯

解决您的问题的方法是在保存之前将 Image 类型转换为无符号 8 位整数。您可以替换以下行:cv2.imwrite('hybrid_image.jpg', cropped_image*255)和cropped_image = cropped_image * 255  # Still (can be) floatscv2.imwrite('hybrid_image.jpg', cropped_image.astype(np.uint8)) 请确保在转换为np.uint8您的图像之前没有任何高于 255 的数字。否则,OpenCV 会将它们钳制为白色像素(255 值)。
打开App,查看更多内容
随时随地看视频慕课网APP

相关分类

Python