Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/python/334.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

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/opencv/3.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
Python 将图像保存为jpg会给我纯黑色_Python_Opencv - Fatal编程技术网

Python 将图像保存为jpg会给我纯黑色

Python 将图像保存为jpg会给我纯黑色,python,opencv,Python,Opencv,我正在实现gabor内核,当我在运行代码时(保存之前)显示内核时,它们会给我一幅这样的图片 但是在使用cv2.imwrite将内核保存为jpg图像之后,我得到了这样的结果 有什么解释吗?如何将内核保存为第一张图片中的格式?可能有不同的原因。因此,我有两个建议: 如果使用plt.imshow()显示第一张图片,请使用plt.savefig()导出它。这应该很容易奏效 如果仍要使用cv2.imwrite()导出图像,请确保首先正确地重新缩放了图片。(请注意,如果只有一个通道,您将获得灰度图像)

我正在实现gabor内核,当我在运行代码时(保存之前)显示内核时,它们会给我一幅这样的图片

但是在使用cv2.imwrite将内核保存为jpg图像之后,我得到了这样的结果


有什么解释吗?如何将内核保存为第一张图片中的格式?

可能有不同的原因。因此,我有两个建议:

  • 如果使用plt.imshow()显示第一张图片,请使用plt.savefig()导出它。这应该很容易奏效

  • 如果仍要使用cv2.imwrite()导出图像,请确保首先正确地重新缩放了图片。(请注意,如果只有一个通道,您将获得灰度图像)

  • 如果我们称原始图片为org\u img:


    你到底是如何显示第一张图片的?您正在使用plt.imshow吗?一旦共享了代码片段,我认为它与img数据的规格化和类型有关,如int16或float。您的图像可能是介于0和1之间的浮点值。Pyplot用于显示的颜色代码。但当保存到JPG时,它需要0到255的范围。因此,在0到255范围内,所有值都是0或1。所以那是黑色的。将图像乘以255。剪辑到0到255的范围并转换为uint8。那么除了谢谢你之外,我尝试了建议1,它成功了。我还有一个问题。现在我正在保存gabor核和使用plt.savefig生成的gabor滤波图像。我将它们保存在不同的文件夹中,但是如果在保存步骤之前使用plt.imshow(kernel),我会在两个文件夹中找到gabor内核图像,如果在保存步骤之前使用plt.imshow(filtered_img),我会在两个文件夹中看到过滤后的图像。有什么建议吗?
    img = org_img
    min_val,max_val=img.min(),img.max()
    img = 255.0*(img - min_val)/(max_val - min_val)
    img = img.astype(np.uint8)
    cv2.imwrite(img,"picture.png")