Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/svg/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Image 使用cv2.imwrite保存时获取黑色图像_Image_Cv2 - Fatal编程技术网

Image 使用cv2.imwrite保存时获取黑色图像

Image 使用cv2.imwrite保存时获取黑色图像,image,cv2,Image,Cv2,我试图在计算图像的局部熵后保存图像。我尝试了cv2.imwrite,但它保存了黑色图像。我尝试了io.imsave。它保存了图像,但由于float32到uint8的转换而导致有损转换。如何保存图像而不丢失?您有两种选择。保存为支持浮点值的格式,例如: 争吵 PFM EXR-如@Rotem在评论中所建议 或者,使用cv2.normalize()将数据的范围和类型规范化为: 0..255uint8并另存为JPEG或PNG,或 0..65536uint16并另存为PNG 通常,如果图像看起来

我试图在计算图像的局部熵后保存图像。我尝试了
cv2.imwrite
,但它保存了黑色图像。我尝试了
io.imsave
。它保存了图像,但由于
float32
uint8
的转换而导致有损转换。如何保存图像而不丢失?

您有两种选择。保存为支持浮点值的格式,例如:

  • 争吵
  • PFM
  • EXR-如@Rotem在评论中所建议
或者,使用
cv2.normalize()
将数据的范围和类型规范化为:

  • 0..255
    uint8
    并另存为JPEG或PNG,或
  • 0..65536
    uint16
    并另存为PNG

通常,如果图像看起来是黑色或接近黑色,这是因为这些值都很低,并且图像的对比度有限。您只需在终端中使用ImageMagick即可提高对比度:

magick DARKIMAGE.png -auto-level OUTPUT.png

对于
io.imsave
我得到了以下警告:
从float64到uint8的有损转换。范围[3.1201322583795204,7.1100765084596]。在保存之前将图像转换为uint8以抑制此警告。
如何解决此问题?请看我喜欢的
浏览。曝光。重新缩放强度(img,in_range='image',out_range=(0255))
。这与ImageMagick-auto-level的作用相同,因为它会自动查找输入范围,并允许您为输出指定0到255或0到1或所需的值range@fmw42好消息,谢谢。