我正在转换一些图像转换代码来使用tensorflow。在
我的图像作为base64字符串传入。使用以下函数,base64字符串可以被解码并作为np.数组公司名称:
def load_color_image_base64(image_base64):
img_pil = Image.open(BytesIO(base64.b64decode(image_base64))).convert("RGB")
return np.array(img_pil)
但是,当我将同一个字符串传递给下面的tensorflow代码时,我得到一个错误:
^{pr2}$我得到的错误是:
tf.decode_base64(self._image_b64), channels=3) File "/Users/jameskelly/anaconda/envs/im2volume/lib/python2.7/site-packages/tensorflow/python/ops/gen_string_ops.py", line 106, in decode_base64 "DecodeBase64", input=input, name=name) File "/Users/jameskelly/anaconda/envs/im2volume/lib/python2.7/site-packages/tensorflow/python/framework/op_def_library.py", line 787, in _apply_op_helper op_def=op_def) File "/Users/jameskelly/anaconda/envs/im2volume/lib/python2.7/site-packages/tensorflow/python/framework/ops.py", line 2956, in create_op op_def=op_def) File "/Users/jameskelly/anaconda/envs/im2volume/lib/python2.7/site-packages/tensorflow/python/framework/ops.py", line 1470, in __init__ self._traceback = self._graph._extract_stack() # pylint: disable=protected-access InvalidArgumentError (see above for traceback): Invalid character found in base64. [[Node: DecodeBase64 = DecodeBase64[_device="/job:localhost/replica:0/task:0/device:CPU:0"](_arg_Placeholder_2_0_2)]]
应该注意的是,这个代码是在flaskapi后面的。当我直接运行该类时,从磁盘加载映像并将其直接转换为base64,这两种情况都有效。在
我还将base64字符串转换为python str
类型,因为它是作为unicode
传入的,所以错误消息没有更改。在
将base64字符串中的“/”替换为“\”,将“+”替换为“-”。为我工作。 更多信息请参考:https://www.tensorflow.org/versions/r1.14/api_docs/python/tf/io/decode_base64
相关问题 更多 >
编程相关推荐