skimage旋转图像显示为黑色

我正在尝试对示例图像进行简单的旋转,但是当我尝试显示它时,文件仅显示黑色像素。我可以说它已经旋转了,因为尺寸已正确更改。

from io import BytesIO
import numpy as np
from PIL import Image
from skimage.transform import rotate
from flask import send_file

image_file = Image.open(file_path).convert("L")

image_array = np.array(image_file)
image_array_rotated = rotate(image_array,angle=90,resize=True)

rotated_image_file = Image.fromarray(image_array_rotated).convert("L")

buffered_image_file = BytesIO()
rotated_image_file.save(buffered_image_file,'PNG')
buffered_image_file.seek(0)
return send_file(buffered_image_file,mimetype='image/png')

如果我删除旋转代码并显示原始图像或转换后的灰度(“ L”)图像,它们都可以正常显示。我旋转的图像只是黑色。

skimage旋转图像显示为黑色

skimage旋转图像显示为黑色

skimage旋转图像显示为黑色

morenming 回答:skimage旋转图像显示为黑色

scikit-image可在需要插值或卷积的任何时候自动将图像转换为浮点数,以确保计算的准确性。在转换为浮动时,图像的范围转换为[0,1]。您可以在此处阅读有关其如何处理数据类型的更多信息:

https://scikit-image.org/docs/dev/user_guide/data_types.html

在这里,您可以修改代码以使用PIL数据:

tlsCACert

或者,您可以使用from io import BytesIO import numpy as np from PIL import Image from skimage.transform import rotate from skimage import util from flask import send_file image_file = Image.open(file_path).convert("L") image_array = util.img_as_float(np.array(image_file)) image_array_rotated = rotate(image_array,angle=90,resize=True) image_array_rotated_bytes = util.img_as_ubyte(image_array_rotated) rotated_image_file = Image.fromarray(image_array_rotated).convert("L") buffered_image_file = BytesIO() rotated_image_file.save(buffered_image_file,'PNG') buffered_image_file.seek(0) return send_file(buffered_image_file,mimetype='image/png') ,它将在幕后为您完成所有这些转换。

马克在评论中指出的另一种选择是也使用PIL进行轮换。

本文链接:https://www.f2er.com/3099796.html

大家都在问