我正在使用dft和Butterworth滤镜对图像应用非锐化滤镜。如果您不熟悉该过程,则将图像转换为其DFT(cv2.dft),将其与Butterworth过滤器(在Wikipedia上搜索)相乘,然后反转DFT(cv2.idft)。这样您就可以获得低通滤波图像。然后,您对原始图像和低通图像进行加权求和,然后获得目标图像(就像应用任何非锐化滤镜时一样)。
如您所见,我需要使用浮点图像进行操作。
我已经能够正确完成该过程,并且在使用imshow
时获得了所需的结果,但现在我想将结果保存到PNG文件中。为此,我需要将浮点图像转换为uint8格式,但这样做不会产生与imshow
相同的结果。
浮点图像的最大值为1.8,这意味着在应用总和后它不会被标准化。我尝试将其标准化(NORM_MINMAX
),乘以255并转换为uint8
,但结果仍然与imshow的结果不同。
编辑:图片
(我想分享更多示例图片,但我无法添加更多链接)
有没有办法完成imshow
在浮点图像上保存的完全相同的过程?它必须在内部将其转换为uint8
格式,不是吗?