Halostack Image module¶
Module for image I/O and conversions
-
class
halostack.image.
Image
(img=None, fname=None, enhancements=None, nprocs=1)¶ Bases:
object
Class for handling images.
Parameters: - img (ndarray or None) – array holding image data
- fname (str or None) – image filename
- enhancements (dictionary or None) – image processing applied to the image
- nprocs (int) – number or parallel processes
-
enhance
(enhancements)¶ Enhance the image with the given function(s) and argument(s).
Parameters: enhancements (dictionary) – image processing methods Available image processing methods:
br
: Blue - Red- possible calls:
{'br': None}
{'br': float}
- optional arguments:
float
: multiplier for blue channel [mean(red/green)
]
- possible calls:
gr
: Green - Red- possible calls:
{'gr': None}
{'gr': float}
- optional arguments:
float
: multiplier for red channel [mean(green/red)
]
- possible calls:
bg
: Blue - Green- possible calls:
{'bg': None}
{'bg': float}
- optional arguments:
float
: multiplier for blue channel [mean(blue/green)
]
- possible calls:
emboss
: emboss image using ImageMagick- possible calls:
{'emboss': None}
{'emboss': float}
{'emboss': [float, float]}
- optional arguments:
float
: light source azimuth in degrees [90
]float
: light source elevation in degrees [45
]
- possible calls:
gamma
: gamma correction using ImageMagick- possible calls:
{'gamma': float}
- required arguments:
float
: gamma value
- possible calls:
gradient
: remove image gradient- possible calls:
{'gradient': None}
{'gradient': float}
- optional arguments:
float
(blur radius) [min(image dimensions)/20
]
- possible calls:
rgb_sub
: Subtract luminance from each color channelpossible calls:
{'rgb_sub': None}
rgb_mix
: Subtract luminance from each color channel and mix it back to the original imagepossible calls:
{'rgb_mix': None}
{'rgb_mix': float}
optional arguments:
float
: mixing ratio [0.7
]
stretch
: linear histogram stretch- possible calls:
{'stretch': None}
{'stretch': float}
{'stretch': [float, float]}
- optional arguments:
float
: low cut threshold [0.01
]float
: high cut threshold [1 - <low cut threshold>
]
- possible calls:
usm
: unsharp mask using ImageMagick- possible calls:
{'usm': [float, float]}
{'usm': [float, float, float]}
{'usm': [float, float, float, float]}
- required arguments:
float
: radiusfloat
: amount
- optional arguments:
float
: standard deviation of the gaussian [sqrt(radius)
]float
: threshold [0
]
- possible calls:
-
luminance
()¶ Return luminance (channel average) as Numpy ndarray.
Return type: Numpy ndarray
-
max
()¶ Return the maximum value in the image.
Return type: float
-
min
()¶ Return the minimum value in the image.
Return type: float
-
save
(fname, bits=16, enhancements=None)¶ Save the image data.
Parameters: - fname (str) – output filename
- bits (int) – output bit-depth
- enhancements (dictionary or None) – image processing applied to the image before saving
-
to_numpy
()¶ Convert from PMImage to Numpy ndarray.
-
halostack.image.
polyfit2d
(x_loc, y_loc, z_val, order=2)¶ Fit a 2-D polynomial to the given data.
Implementation from: http://stackoverflow.com/a/7997925
Parameters: - x_loc (list or ndarray) – X coordinates
- y_loc (list or ndarray) – Y coordinates
- z_val (list or ndarray) – Z values at (X, Y)
- order (integer) – order of the polynomial
Return type: list of polynomial coefficients as floats
-
halostack.image.
polyval2d
(x_loc, y_loc, poly)¶ Evaluate 2-D polynomial poly at the given locations
Implementation from: http://stackoverflow.com/a/7997925
Parameters: - x_loc (list or Numpy array) – X coordinates
- y_loc (list or Numpy array) – Y coordinates
- poly (list of floats) – polynomial coefficients
-
halostack.image.
to_imagemagick
(img, bits=16)¶ Convert numpy array to Imagemagick format.
Parameters: img (Numpy ndarray) – image to convert Return type: PythonMagick.Image
-
halostack.image.
to_numpy
(img)¶ Convert ImageMagick data to numpy array.
Parameters: img (PythonMagick.Image) – image to convert Return type: Numpy ndarray