LSST Applications  21.0.0+04719a4bac,21.0.0-1-ga51b5d4+ae94e5adf4,21.0.0-10-g2408eff+ad7fe00a3b,21.0.0-10-g560fb7b+5d30037bff,21.0.0-10-gcf60f90+7fd8e8fd04,21.0.0-11-g25eff31+491f1498e8,21.0.0-11-gd78879e+d13a45ff19,21.0.0-12-g1e69a3f+69d54d99d8,21.0.0-17-g6590b197+c8c705a94e,21.0.0-2-g103fe59+29086b68f8,21.0.0-2-g1367e85+d793a9824f,21.0.0-2-g45278ab+04719a4bac,21.0.0-2-g5242d73+d793a9824f,21.0.0-2-g7f82c8f+7178d1fb8b,21.0.0-2-g8f08a60+fd0b970de5,21.0.0-2-g8faa9b5+3b24369756,21.0.0-2-ga326454+7178d1fb8b,21.0.0-2-gde069b7+ca45a81b40,21.0.0-2-gecfae73+3609a557ba,21.0.0-2-gfc62afb+d793a9824f,21.0.0-22-g2a5702db6+f385fa6f38,21.0.0-3-g357aad2+673ab9f056,21.0.0-3-g4be5c26+d793a9824f,21.0.0-3-g65f322c+45176dc65e,21.0.0-3-g7d9da8d+3b24369756,21.0.0-3-ge02ed75+d05e6d1be4,21.0.0-4-g591bb35+d05e6d1be4,21.0.0-4-g65b4814+5d30037bff,21.0.0-4-gccdca77+a631590478,21.0.0-4-ge8a399c+7f1b116a8b,21.0.0-5-gb7b9a9f+d793a9824f,21.0.0-5-gd00fb1e+de3bd29da1,21.0.0-55-g0be6b205+66ae927d20,21.0.0-6-g2d4f3f3+04719a4bac,21.0.0-7-g04766d7+510a52a951,21.0.0-7-g98eecf7+adb4d61a8d,21.0.0-9-g39e06b5+d05e6d1be4,master-gac4afde19b+d05e6d1be4,w.2021.12
LSST Data Management Base Package
Classes | Functions
lsst.afw.display.rgb.rgbContinued Namespace Reference

Classes

class  Mapping
 
class  LinearMapping
 
class  ZScaleMapping
 
class  AsinhMapping
 
class  AsinhZScaleMapping
 

Functions

def computeIntensity (imageR, imageG=None, imageB=None)
 
def makeRGB (imageR, imageG=None, imageB=None, minimum=0, dataRange=5, Q=8, fileName=None, saturatedBorderWidth=0, saturatedPixelValue=None, xSize=None, ySize=None, rescaleFactor=None)
 
def displayRGB (rgb, show=True)
 
def writeRGB (fileName, rgbImage)
 

Function Documentation

◆ computeIntensity()

def lsst.afw.display.rgb.rgbContinued.computeIntensity (   imageR,
  imageG = None,
  imageB = None 
)
Return a naive total intensity from the red, blue, and green intensities

Parameters
----------
imageR : `lsst.afw.image.MaskedImage`, `lsst.afw.image.Image`, or `numpy.ndarray`, (Nx, Ny)
    intensity of image that'll be mapped to red; or intensity if imageG and imageB are None
imageG : `lsst.afw.image.MaskedImage`, `lsst.afw.image.Image`, or `numpy.ndarray`, (Nx, Ny)
    intensity of image that'll be mapped to green; or None
imageB : `lsst.afw.image.MaskedImage`, `lsst.afw.image.Image`, or `numpy.ndarray`, (Nx, Ny)
    intensity of image that'll be mapped to blue; or None

Returns
-------
image : type of ``imageR``, ``imageG``, and `imageB``

Definition at line 30 of file rgbContinued.py.

30 def computeIntensity(imageR, imageG=None, imageB=None):
31  """Return a naive total intensity from the red, blue, and green intensities
32 
33  Parameters
34  ----------
35  imageR : `lsst.afw.image.MaskedImage`, `lsst.afw.image.Image`, or `numpy.ndarray`, (Nx, Ny)
36  intensity of image that'll be mapped to red; or intensity if imageG and imageB are None
37  imageG : `lsst.afw.image.MaskedImage`, `lsst.afw.image.Image`, or `numpy.ndarray`, (Nx, Ny)
38  intensity of image that'll be mapped to green; or None
39  imageB : `lsst.afw.image.MaskedImage`, `lsst.afw.image.Image`, or `numpy.ndarray`, (Nx, Ny)
40  intensity of image that'll be mapped to blue; or None
41 
42  Returns
43  -------
44  image : type of ``imageR``, ``imageG``, and `imageB``
45  """
46  if imageG is None or imageB is None:
47  assert imageG is None and imageB is None, \
48  "Please specify either a single image or red, green, and blue images"
49  return imageR
50 
51  imageRGB = [imageR, imageG, imageB]
52 
53  for i, c in enumerate(imageRGB):
54  if hasattr(c, "getImage"):
55  c = imageRGB[i] = c.getImage()
56  if hasattr(c, "getArray"):
57  imageRGB[i] = c.getArray()
58 
59  intensity = (imageRGB[0] + imageRGB[1] + imageRGB[2])/float(3)
60  #
61  # Repack into whatever type was passed to us
62  #
63  Image = afwImage.ImageU if intensity.dtype == 'uint16' else afwImage.ImageF
64 
65  if hasattr(imageR, "getImage"): # a maskedImage
66  intensity = afwImage.makeMaskedImage(Image(intensity))
67  elif hasattr(imageR, "getArray"):
68  intensity = Image(intensity)
69 
70  return intensity
71 
72 
def computeIntensity(imageR, imageG=None, imageB=None)
Definition: rgbContinued.py:30
MaskedImage< ImagePixelT, MaskPixelT, VariancePixelT > * makeMaskedImage(typename std::shared_ptr< Image< ImagePixelT >> image, typename std::shared_ptr< Mask< MaskPixelT >> mask=Mask< MaskPixelT >(), typename std::shared_ptr< Image< VariancePixelT >> variance=Image< VariancePixelT >())
A function to return a MaskedImage of the correct type (cf.
Definition: MaskedImage.h:1268

◆ displayRGB()

def lsst.afw.display.rgb.rgbContinued.displayRGB (   rgb,
  show = True 
)
Display an rgb image using matplotlib

Parameters
----------
rgb
    The RGB image in question
show : `bool`
    If `True`, call `matplotlib.pyplot.show()`

Definition at line 432 of file rgbContinued.py.

432 def displayRGB(rgb, show=True):
433  """Display an rgb image using matplotlib
434 
435  Parameters
436  ----------
437  rgb
438  The RGB image in question
439  show : `bool`
440  If `True`, call `matplotlib.pyplot.show()`
441  """
442  import matplotlib.pyplot as plt
443  plt.imshow(rgb, interpolation='nearest', origin="lower")
444  if show:
445  plt.show()
446  return plt
447 
448 

◆ makeRGB()

def lsst.afw.display.rgb.rgbContinued.makeRGB (   imageR,
  imageG = None,
  imageB = None,
  minimum = 0,
  dataRange = 5,
  Q = 8,
  fileName = None,
  saturatedBorderWidth = 0,
  saturatedPixelValue = None,
  xSize = None,
  ySize = None,
  rescaleFactor = None 
)
Make a set of three images into an RGB image using an asinh stretch and
optionally write it to disk

Parameters
----------
imageR
imageG
imageB
minimum : `float` or sequence of `float`
dataRange
Q : `int`
fileName : `str`
    The output file. The suffix defines the format, and must be supported by matplotlib
saturatedBorderWidth
    If saturatedBorderWidth is non-zero, replace saturated pixels with
    ``saturatedPixelValue``. Note that replacing saturated pixels requires
    that the input images be `lsst.afw.image.MaskedImage`.
saturatedPixelValue
xSize
ySize
rescaleFactor

Definition at line 385 of file rgbContinued.py.

387  xSize=None, ySize=None, rescaleFactor=None):
388  """Make a set of three images into an RGB image using an asinh stretch and
389  optionally write it to disk
390 
391  Parameters
392  ----------
393  imageR
394  imageG
395  imageB
396  minimum : `float` or sequence of `float`
397  dataRange
398  Q : `int`
399  fileName : `str`
400  The output file. The suffix defines the format, and must be supported by matplotlib
401  saturatedBorderWidth
402  If saturatedBorderWidth is non-zero, replace saturated pixels with
403  ``saturatedPixelValue``. Note that replacing saturated pixels requires
404  that the input images be `lsst.afw.image.MaskedImage`.
405  saturatedPixelValue
406  xSize
407  ySize
408  rescaleFactor
409  """
410  if imageG is None:
411  imageG = imageR
412  if imageB is None:
413  imageB = imageR
414 
415  if saturatedBorderWidth:
416  if saturatedPixelValue is None:
417  raise ValueError(
418  "saturatedPixelValue must be set if saturatedBorderWidth is set")
419  replaceSaturatedPixels(imageR, imageG, imageB,
420  saturatedBorderWidth, saturatedPixelValue)
421 
422  asinhMap = AsinhMapping(minimum, dataRange, Q)
423  rgb = asinhMap.makeRgbImage(imageR, imageG, imageB,
424  xSize=xSize, ySize=ySize, rescaleFactor=rescaleFactor)
425 
426  if fileName:
427  writeRGB(fileName, rgb)
428 
429  return rgb
430 
431 
def writeRGB(fileName, rgbImage)
void replaceSaturatedPixels(ImageT &rim, ImageT &gim, ImageT &bim, int borderWidth=2, float saturatedPixelValue=65535)
Definition: saturated.cc:30

◆ writeRGB()

def lsst.afw.display.rgb.rgbContinued.writeRGB (   fileName,
  rgbImage 
)
Write an RGB image to disk

Parameters
----------
fileName : `str`
    The output file. The suffix defines the format, and must be supported by matplotlib

    Most versions of matplotlib support png and pdf (although the eps/pdf/svg writers may be buggy,
    possibly due an interaction with useTeX=True in the matplotlib settings).

    If your matplotlib bundles pil/pillow you should also be able to write jpeg and tiff files.
rgbImage
    The image, as made by e.g. makeRGB

Definition at line 449 of file rgbContinued.py.

449 def writeRGB(fileName, rgbImage):
450  """Write an RGB image to disk
451 
452  Parameters
453  ----------
454  fileName : `str`
455  The output file. The suffix defines the format, and must be supported by matplotlib
456 
457  Most versions of matplotlib support png and pdf (although the eps/pdf/svg writers may be buggy,
458  possibly due an interaction with useTeX=True in the matplotlib settings).
459 
460  If your matplotlib bundles pil/pillow you should also be able to write jpeg and tiff files.
461  rgbImage
462  The image, as made by e.g. makeRGB
463  """
464  import matplotlib.image
465  matplotlib.image.imsave(fileName, rgbImage)