Python 不是JPEG文件:以0xc3 0xbf开头
我正在尝试使用tf.image.decode_jpeg对jpeg文件进行解码,但它说它不是jpeg文件。我不知道是什么问题。有人能帮我解决这个问题吗 这是我的测试代码Python 不是JPEG文件:以0xc3 0xbf开头,python,tensorflow,Python,Tensorflow,我正在尝试使用tf.image.decode_jpeg对jpeg文件进行解码,但它说它不是jpeg文件。我不知道是什么问题。有人能帮我解决这个问题吗 这是我的测试代码 import tensorflow as tf path = "/root/PycharmProjects/mscoco/train2014/COCO_train2014_000000291797.jpg" with open(path, "r", encoding="latin-1") as f: image = f
import tensorflow as tf
path = "/root/PycharmProjects/mscoco/train2014/COCO_train2014_000000291797.jpg"
with open(path, "r", encoding="latin-1") as f:
image = f.read()
encoded_jpeg = tf.placeholder(dtype=tf.string)
decoded_jpeg = tf.image.decode_jpeg(encoded_jpeg, channels=3)
sess = tf.InteractiveSession()
sess.run(decoded_jpeg, feed_dict={encoded_jpeg: image})
这就是错误:
Not a JPEG file: starts with 0xc3 0xbf
Traceback (most recent call last):
File "/usr/lib/python3.4/site-packages/tensorflow/python/client/session.py", line 965, in _do_call
return fn(*args)
File "/usr/lib/python3.4/site-packages/tensorflow/python/client/session.py", line 947, in _run_fn
status, run_metadata)
File "/usr/lib64/python3.4/contextlib.py", line 66, in __exit__
next(self.gen)
File "/usr/lib/python3.4/site-packages/tensorflow/python/framework/errors.py", line 450, in raise_exception_on_not_ok_status
pywrap_tensorflow.TF_GetCode(status))
tensorflow.python.framework.errors.InvalidArgumentError: Invalid JPEG data, size 165886
[[Node: DecodeJpeg = DecodeJpeg[acceptable_fraction=1, channels=3, fancy_upscaling=true, ratio=1, try_recover_truncated=false, _device="/job:localhost/replica:0/task:0/cpu:0"](_recv_Placeholder_0)]]
During handling of the above exception, another exception occurred:
Traceback (most recent call last):
File "/root/PycharmProjects/mytf/models/im2txt/im2txt/data/test.py", line 14, in <module>
sess.run(decoded_jpeg, feed_dict={encoded_jpeg: image})
File "/usr/lib/python3.4/site-packages/tensorflow/python/client/session.py", line 710, in run
run_metadata_ptr)
File "/usr/lib/python3.4/site-packages/tensorflow/python/client/session.py", line 908, in _run
feed_dict_string, options, run_metadata)
File "/usr/lib/python3.4/site-packages/tensorflow/python/client/session.py", line 958, in _do_run
target_list, options, run_metadata)
File "/usr/lib/python3.4/site-packages/tensorflow/python/client/session.py", line 978, in _do_call
raise type(e)(node_def, op, message)
tensorflow.python.framework.errors.InvalidArgumentError: Invalid JPEG data, size 165886
[[Node: DecodeJpeg = DecodeJpeg[acceptable_fraction=1, channels=3, fancy_upscaling=true, ratio=1, try_recover_truncated=false, _device="/job:localhost/replica:0/task:0/cpu:0"](_recv_Placeholder_0)]]
Caused by op 'DecodeJpeg', defined at:
File "/root/PycharmProjects/mytf/models/im2txt/im2txt/data/test.py", line 10, in <module>
decoded_jpeg = tf.image.decode_jpeg(encoded_jpeg, channels=3)
File "/usr/lib/python3.4/site-packages/tensorflow/python/ops/gen_image_ops.py", line 283, in decode_jpeg
name=name)
File "/usr/lib/python3.4/site-packages/tensorflow/python/framework/op_def_library.py", line 703, in apply_op
op_def=op_def)
File "/usr/lib/python3.4/site-packages/tensorflow/python/framework/ops.py", line 2317, in create_op
original_op=self._default_original_op, op_def=op_def)
File "/usr/lib/python3.4/site-packages/tensorflow/python/framework/ops.py", line 1239, in __init__
self._traceback = _extract_stack()
不是JPEG文件:以0xc3 0xbf开头
回溯(最近一次呼叫最后一次):
文件“/usr/lib/python3.4/site packages/tensorflow/python/client/session.py”,第965行,在
返回fn(*args)
文件“/usr/lib/python3.4/site packages/tensorflow/python/client/session.py”,第947行,在
状态,运行(元数据)
文件“/usr/lib64/python3.4/contextlib.py”,第66行,在__
下一个(self.gen)
文件“/usr/lib/python3.4/site packages/tensorflow/python/framework/errors.py”,第450行,处于raise\u exception\u on\u not\u ok\u状态
pywrap_tensorflow.TF_GetCode(状态))
tensorflow.python.framework.errors.InvalidArgumentError:无效的JPEG数据,大小165886
[[Node:DecodeJpeg=DecodeJpeg[可接受的分数=1,通道=3,高级放大=true,比率=1,尝试恢复\u截断=false,\u设备=“/job:localhost/replica:0/task:0/cpu:0”](\u recv\u占位符\u 0)]]
在处理上述异常期间,发生了另一个异常:
回溯(最近一次呼叫最后一次):
文件“/root/PycharmProjects/mytf/models/im2text/im2text/data/test.py”,第14行,在
运行(已解码的\u jpeg,提要\u dict={encoded\u jpeg:image})
文件“/usr/lib/python3.4/site packages/tensorflow/python/client/session.py”,第710行,正在运行
运行_元数据_ptr)
文件“/usr/lib/python3.4/site packages/tensorflow/python/client/session.py”,第908行,正在运行
提要(dict字符串、选项、运行元数据)
文件“/usr/lib/python3.4/site packages/tensorflow/python/client/session.py”,第958行,运行
目标\u列表、选项、运行\u元数据)
文件“/usr/lib/python3.4/site packages/tensorflow/python/client/session.py”,第978行,在
提升类型(e)(节点定义、操作、消息)
tensorflow.python.framework.errors.InvalidArgumentError:无效的JPEG数据,大小165886
[[Node:DecodeJpeg=DecodeJpeg[可接受的分数=1,通道=3,高级放大=true,比率=1,尝试恢复\u截断=false,\u设备=“/job:localhost/replica:0/task:0/cpu:0”](\u recv\u占位符\u 0)]]
由op“DecodeJpeg”引起,定义于:
文件“/root/PycharmProjects/mytf/models/im2text/im2text/data/test.py”,第10行,在
解码的\u jpeg=tf.image.decode\u jpeg(编码的\u jpeg,通道=3)
文件“/usr/lib/python3.4/site packages/tensorflow/python/ops/gen_image_ops.py”,第283行,格式为decode_jpeg
名称=名称)
文件“/usr/lib/python3.4/site packages/tensorflow/python/framework/op_def_library.py”,第703行,在apply_op
op_def=op_def)
文件“/usr/lib/python3.4/site packages/tensorflow/python/framework/ops.py”,第2317行,在create_op中
初始值=自身值。\默认值\初始值,初始值=初始值)
文件“/usr/lib/python3.4/site packages/tensorflow/python/framework/ops.py”,第1239行,在__
self.\u traceback=\u extract\u stack()
我无法您正在读取图像文件,就像它是文本文件一样 换句话:
with open(path, "r", encoding="latin-1") as f:
与
以二进制文件形式读取图像(“rb”=读取二进制文件)。您正在读取图像文件,就像它是文本文件一样 换句话:
with open(path, "r", encoding="latin-1") as f:
与
以二进制文件的形式读取图像(“rb”=读取二进制文件)。非常准确。原来
c3 bf
是拉丁语-1中ff
的UTF-8编码,这是JFIF图像标记起始的第一个字节(作为二进制数据,将其解析为任何一种编码都是不正确的)。原来c3 bf
是拉丁语-1中ff
的UTF-8编码,它是JFIF图像标记起始的第一个字节(作为二进制数据,将其解析为任一编码都是不正确的).您使用tensorflow而不是PIL/pillow的原因是什么?Pithons的默认图像库更多?您使用tensorflow而不是PIL/pillow的原因是什么?