提交 595ca167 编写于 作者: K Kentaro Wada

Add img_b64_to_arr, img_arr_to_b64

上级 ab3a2631
.cache/
build/
dist/
/.cache/
/.pytest_cache/
/build/
/dist/
/*.egg-info/
*.py[cdo]
*.egg-info/
icons/.DS_Store
labelme/resources.py
.DS_Store
/labelme/resources.py
......@@ -57,12 +57,27 @@ def label2rgb(lbl, img=None, n_labels=None, alpha=0.3, thresh_suppress=0):
def img_b64_to_array(img_b64):
warnings.warn('img_ba64_to_array is deprecated. '
'Please use img_b64_to_arr.')
return img_b64_to_arr(img_b64)
def img_b64_to_arr(img_b64):
f = io.BytesIO()
f.write(base64.b64decode(img_b64))
img_arr = np.array(PIL.Image.open(f))
return img_arr
def img_arr_to_b64(img_arr):
img_pil = PIL.Image.fromarray(img_arr)
f = io.BytesIO()
img_pil.save(f, format='PNG')
img_bin = f.getvalue()
img_b64 = base64.encodestring(img_bin)
return img_b64
def polygons_to_mask(img_shape, polygons):
mask = np.zeros(img_shape[:2], dtype=np.uint8)
mask = PIL.Image.fromarray(mask)
......
../../examples/single_image/apc2016_obj3.jpg
\ No newline at end of file
../../examples/single_image/apc2016_obj3.json
\ No newline at end of file
......@@ -2,17 +2,27 @@ import json
import os.path as osp
import numpy as np
import PIL.Image
from labelme import utils
import labelme
here = osp.dirname(osp.abspath(__file__))
data_dir = osp.join(here, 'data')
def test_img_b64_to_array():
json_file = osp.join(here, '../examples/single_image/apc2016_obj3.json')
def test_img_b64_to_arr():
json_file = osp.join(data_dir, 'apc2016_obj3.json')
data = json.load(open(json_file))
img_b64 = data['imageData']
img = utils.img_b64_to_array(img_b64)
img = labelme.utils.img_b64_to_arr(img_b64)
assert img.dtype == np.uint8
assert img.shape == (907, 1210, 3)
def test_img_arr_to_b64():
img_file = osp.join(data_dir, 'apc2016_obj3.jpg')
img_arr = np.asarray(PIL.Image.open(img_file))
img_b64 = labelme.utils.img_arr_to_b64(img_arr)
img_arr2 = labelme.utils.img_b64_to_arr(img_b64)
np.testing.assert_allclose(img_arr, img_arr2)
Markdown is supported
0% .
You are about to add 0 people to the discussion. Proceed with caution.
先完成此消息的编辑!
想要评论请 注册