def image_to_laplacian(filename):
with open(filename, 'r', encoding="latin-1") as f:
s = f.read()
img = sc.misc.imread(f)
image_to_laplacian('images/bw_3x3.png')
产地:
UnicodeDecodeError:' utf-8'编解码器不能解码位置0中的字节0x89:无效的起始字节
"影像/ bw_3x3.png"是我在Pinta制作的3x3图像。我尝试打开一个cat.jpg,我是从Google Images获得的,但我也遇到了同样的错误。
我还尝试使用"encoding="latin-1"
作为参数打开,基于我在SO上阅读的内容;我能够打开文件,但是我
读取失败,异常
OSError:无法识别图像文件< _io.TextIOWrapper name =' images / bw_3x3.png'模式=' R'编码=' Latin-1的'>
答案 0 :(得分:1)
导致错误的行是
s = f.read()
在'r'模式下,这会尝试将数据作为字符串读取,但它是一个图像文件,因此会失败。你可以改用'rb'。绝对删除encoding=latin
,因为这仅与文本文件相关。
另请注意,根据the documentation:
name:str或file对象
要读取的文件名或文件对象。
因此,您可以省去打开文件,只需将文件路径作为字符串。以下应该有效:
img = sc.misc.imread(filename)