在OpenCV(python)中将浮点图像保存为PNG

时间:2015-10-30 12:27:55

标签: python opencv

我正在使用dft和Butterworth滤镜对图像应用非锐化滤镜。如果您不熟悉该过程,则将图像转换为其DFT(cv2.dft),将其与Butterworth过滤器(在Wikipedia上搜索)相乘,然后反转DFT(cv2.idft)。这样您就可以获得低通滤波图像。然后,您对原始图像和低通图像进行加权求和,然后获得目标图像(就像应用任何非锐化滤镜时一样)。

如您所见,我需要使用浮点图像进行操作。

我已经能够正确完成该过程,并且在使用imshow时获得了所需的结果,但现在我想将结果保存到PNG文件中。为此,我需要将浮点图像转换为uint8格式,但这样做不会产生与imshow相同的结果。

浮点图像的最大值为1.8,这意味着在应用总和后它不会被标准化。我尝试将其标准化(NORM_MINMAX),乘以255并转换为uint8,但结果仍然与imshow的结果不同。

编辑:图片

原始图像
enter image description here

已处理(未正常化)
enter image description here

已处理(正常化)
enter image description here

期望的结果(imshow的截图)
enter image description here

(我想分享更多示例图片,但我无法添加更多链接)

有没有办法完成imshow在浮点图像上保存的完全相同的过程?它必须在内部将其转换为uint8格式,不是吗?

0 个答案:

没有答案