graphid.util.util_image module

graphid.util.util_image.ensure_float01(img, dtype=<class 'numpy.float32'>, copy=True)[source]

Ensure that an image is encoded using a float properly

graphid.util.util_image.get_num_channels(img)[source]

Returns the number of color channels

graphid.util.util_image.convert_colorspace(img, dst_space, src_space='BGR', copy=False, dst=None)[source]

Converts colorspace of img. Convinience function around cv2.cvtColor

Parameters:
  • img (ndarray[uint8_t, ndim=2]) – image data

  • colorspace (str) – RGB, LAB, etc

  • dst_space (unicode) – (default = u’BGR’)

Returns:

img - image data

Return type:

ndarray[uint8_t, ndim=2]

Example

>>> convert_colorspace(np.array([[[0, 0, 1]]], dtype=np.float32), 'LAB', src_space='RGB')
>>> convert_colorspace(np.array([[[0, 1, 0]]], dtype=np.float32), 'LAB', src_space='RGB')
>>> convert_colorspace(np.array([[[1, 0, 0]]], dtype=np.float32), 'LAB', src_space='RGB')
>>> convert_colorspace(np.array([[[1, 1, 1]]], dtype=np.float32), 'LAB', src_space='RGB')
>>> convert_colorspace(np.array([[[0, 0, 1]]], dtype=np.float32), 'HSV', src_space='RGB')
graphid.util.util_image._lookup_colorspace_code(dst_space, src_space='BGR')[source]
graphid.util.util_image.imread(fpath, **kw)[source]

reads image data in BGR format

Example

>>> # xdoctest: +SKIP("use kwimage.imread")
>>> import ubelt as ub
>>> import tempfile
>>> from os.path import splitext  # NOQA
>>> fpath = ub.grabdata('https://i.imgur.com/oHGsmvF.png', fname='carl.png')
>>> #fpath = ub.grabdata('http://www.topcoder.com/contest/problem/UrbanMapper3D/JAX_Tile_043_DTM.tif')
>>> ext = splitext(fpath)[1]
>>> img1 = imread(fpath)
>>> # Check that write + read preserves data
>>> tmp = tempfile.NamedTemporaryFile(suffix=ext)
>>> imwrite(tmp.name, img1)
>>> img2 = imread(tmp.name)
>>> assert np.all(img2 == img1)

Example

>>> # xdoctest: +SKIP("use kwimage.imread")
>>> import tempfile
>>> import ubelt as ub
>>> #img1 = (np.arange(0, 12 * 12 * 3).reshape(12, 12, 3) % 255).astype(np.uint8)
>>> img1 = imread(ub.grabdata('http://i.imgur.com/iXNf4Me.png', fname='ada.png'))
>>> tmp_tif = tempfile.NamedTemporaryFile(suffix='.tif')
>>> tmp_png = tempfile.NamedTemporaryFile(suffix='.png')
>>> imwrite(tmp_tif.name, img1)
>>> imwrite(tmp_png.name, img1)
>>> tif_im = imread(tmp_tif.name)
>>> png_im = imread(tmp_png.name)
>>> assert np.all(tif_im == png_im)

Example

>>> # xdoctest: +SKIP("use kwimage.imread")
>>> from graphid.util.util_image import *
>>> import tempfile
>>> import ubelt as ub
>>> #img1 = (np.arange(0, 12 * 12 * 3).reshape(12, 12, 3) % 255).astype(np.uint8)
>>> tif_fpath = ub.grabdata('https://ghostscript.com/doc/tiff/test/images/rgb-3c-16b.tiff')
>>> img1 = imread(tif_fpath)
>>> tmp_tif = tempfile.NamedTemporaryFile(suffix='.tif')
>>> tmp_png = tempfile.NamedTemporaryFile(suffix='.png')
>>> imwrite(tmp_tif.name, img1)
>>> imwrite(tmp_png.name, img1)
>>> tif_im = imread(tmp_tif.name)
>>> png_im = imread(tmp_png.name)
>>> assert np.all(tif_im == png_im)
graphid.util.util_image.imwrite(fpath, image, **kw)[source]

writes image data in BGR format