!9920 python eager add decode

From: @luoyang42
Reviewed-by: @liucunwei
Signed-off-by: @liucunwei
pull/9920/MERGE
mindspore-ci-bot 5 years ago committed by Gitee
commit b8faa8293b

@ -175,6 +175,22 @@ class Decode(cde.DecodeOp):
self.rgb = rgb
super().__init__(self.rgb)
def __call__(self, img):
"""
Call method.
Args:
img (NumPy): Image to be decoded.
Returns:
img (NumPy), Decoded image.
"""
if not isinstance(img, np.ndarray) or img.ndim != 1 or img.dtype.type is np.str_:
raise TypeError("Input should be a 1-D NumPy with integer type, got {}.".format(type(img)))
decode = cde.Execute(cde.DecodeOp(self.rgb))
img = decode(cde.Tensor(np.asarray(img)))
return img.as_array()
class CutMixBatch(cde.CutMixBatchOp):
"""

@ -13,10 +13,22 @@
# limitations under the License.
# ==============================================================================
import cv2
import numpy as np
from PIL import Image
import mindspore.dataset.vision.c_transforms as C
from mindspore import log as logger
def test_eager_decode():
img = np.fromfile("../data/dataset/apple.jpg", dtype=np.uint8)
logger.info("Image.type: {}, Image.shape: {}".format(type(img), img.shape))
img = C.Decode()(img)
logger.info("Image.type: {}, Image.shape: {}".format(type(img), img.shape))
assert img.shape == (2268, 4032, 3)
def test_eager_resize():
img = cv2.imread("../data/dataset/apple.jpg")
logger.info("Image.type: {}, Image.shape: {}".format(type(img), img.shape))
@ -78,6 +90,20 @@ def test_eager_pad():
assert size_padded == (size[0] + 2 * pad, size[1] + 2 * pad, size[2])
def test_eager_exceptions():
try:
img = "../data/dataset/apple.jpg"
img = C.Decode()(img)
assert False
except TypeError as e:
assert "Input should be a 1-D NumPy with integer type" in str(e)
try:
img = np.array(["a", "b", "c"])
img = C.Decode()(img)
assert False
except TypeError as e:
assert "Input should be a 1-D NumPy with integer type" in str(e)
try:
img = cv2.imread("../data/dataset/apple.jpg")
img = C.Resize(size=(-32, 32))(img)
@ -94,6 +120,7 @@ def test_eager_exceptions():
if __name__ == '__main__':
test_eager_decode()
test_eager_resize()
test_eager_rescale()
test_eager_normalize()

Loading…
Cancel
Save