You can not select more than 25 topics Topics must start with a chinese character,a letter or number, can include dashes ('-') and can be up to 35 characters long.

test_loading.py 3.8 kB

2 years ago
12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667686970717273747576777879808182838485868788899091
  1. # Copyright (c) OpenMMLab. All rights reserved.
  2. import copy
  3. import os.path as osp
  4. import mmcv
  5. import numpy as np
  6. from mmdet.datasets.pipelines import (LoadImageFromFile, LoadImageFromWebcam,
  7. LoadMultiChannelImageFromFiles)
  8. class TestLoading:
  9. @classmethod
  10. def setup_class(cls):
  11. cls.data_prefix = osp.join(osp.dirname(__file__), '../../data')
  12. def test_load_img(self):
  13. results = dict(
  14. img_prefix=self.data_prefix, img_info=dict(filename='color.jpg'))
  15. transform = LoadImageFromFile()
  16. results = transform(copy.deepcopy(results))
  17. assert results['filename'] == osp.join(self.data_prefix, 'color.jpg')
  18. assert results['ori_filename'] == 'color.jpg'
  19. assert results['img'].shape == (288, 512, 3)
  20. assert results['img'].dtype == np.uint8
  21. assert results['img_shape'] == (288, 512, 3)
  22. assert results['ori_shape'] == (288, 512, 3)
  23. assert repr(transform) == transform.__class__.__name__ + \
  24. "(to_float32=False, color_type='color', " + \
  25. "file_client_args={'backend': 'disk'})"
  26. # no img_prefix
  27. results = dict(
  28. img_prefix=None, img_info=dict(filename='tests/data/color.jpg'))
  29. transform = LoadImageFromFile()
  30. results = transform(copy.deepcopy(results))
  31. assert results['filename'] == 'tests/data/color.jpg'
  32. assert results['ori_filename'] == 'tests/data/color.jpg'
  33. assert results['img'].shape == (288, 512, 3)
  34. # to_float32
  35. transform = LoadImageFromFile(to_float32=True)
  36. results = transform(copy.deepcopy(results))
  37. assert results['img'].dtype == np.float32
  38. # gray image
  39. results = dict(
  40. img_prefix=self.data_prefix, img_info=dict(filename='gray.jpg'))
  41. transform = LoadImageFromFile()
  42. results = transform(copy.deepcopy(results))
  43. assert results['img'].shape == (288, 512, 3)
  44. assert results['img'].dtype == np.uint8
  45. transform = LoadImageFromFile(color_type='unchanged')
  46. results = transform(copy.deepcopy(results))
  47. assert results['img'].shape == (288, 512)
  48. assert results['img'].dtype == np.uint8
  49. def test_load_multi_channel_img(self):
  50. results = dict(
  51. img_prefix=self.data_prefix,
  52. img_info=dict(filename=['color.jpg', 'color.jpg']))
  53. transform = LoadMultiChannelImageFromFiles()
  54. results = transform(copy.deepcopy(results))
  55. assert results['filename'] == [
  56. osp.join(self.data_prefix, 'color.jpg'),
  57. osp.join(self.data_prefix, 'color.jpg')
  58. ]
  59. assert results['ori_filename'] == ['color.jpg', 'color.jpg']
  60. assert results['img'].shape == (288, 512, 3, 2)
  61. assert results['img'].dtype == np.uint8
  62. assert results['img_shape'] == (288, 512, 3, 2)
  63. assert results['ori_shape'] == (288, 512, 3, 2)
  64. assert results['pad_shape'] == (288, 512, 3, 2)
  65. assert results['scale_factor'] == 1.0
  66. assert repr(transform) == transform.__class__.__name__ + \
  67. "(to_float32=False, color_type='unchanged', " + \
  68. "file_client_args={'backend': 'disk'})"
  69. def test_load_webcam_img(self):
  70. img = mmcv.imread(osp.join(self.data_prefix, 'color.jpg'))
  71. results = dict(img=img)
  72. transform = LoadImageFromWebcam()
  73. results = transform(copy.deepcopy(results))
  74. assert results['filename'] is None
  75. assert results['ori_filename'] is None
  76. assert results['img'].shape == (288, 512, 3)
  77. assert results['img'].dtype == np.uint8
  78. assert results['img_shape'] == (288, 512, 3)
  79. assert results['ori_shape'] == (288, 512, 3)

No Description

Contributors (1)