content: 
  //
  // This file is auto-generated. Please don't modify it!
  //
  package org.opencv.photo;
  
  import java.util.List;
  import org.opencv.core.Mat;
  import org.opencv.utils.Converters;
  
  public class Photo {
  
      private static final int
              CV_INPAINT_NS = 0,
              CV_INPAINT_TELEA = 1;
  
  
      public static final int
              INPAINT_NS = CV_INPAINT_NS,
              INPAINT_TELEA = CV_INPAINT_TELEA;
  
  
      //
      // C++:  void fastNlMeansDenoising(Mat src, Mat& dst, float h = 3, int templateWindowSize = 7, int searchWindowSize = 21)
      //
  
  /**
   * <p>Perform image denoising using Non-local Means Denoising algorithm
   * http://www.ipol.im/pub/algo/bcm_non_local_means_denoising/ with several
   * computational optimizations. Noise expected to be a gaussian white noise</p>
   *
   * <p>This function expected to be applied to grayscale images. For colored images
   * look at <code>fastNlMeansDenoisingColored</code>.
   * Advanced usage of this functions can be manual denoising of colored image in
   * different colorspaces.
   * Such approach is used in <code>fastNlMeansDenoisingColored</code> by
   * converting image to CIELAB colorspace and then separately denoise L and AB
   * components with different h parameter.</p>
   *
   * @param src Input 8-bit 1-channel, 2-channel or 3-channel image.
   * @param dst Output image with the same size and type as <code>src</code>.
   * @param h Parameter regulating filter strength. Big h value perfectly removes
   * noise but also removes image details, smaller h value preserves details but
   * also preserves some noise
   * @param templateWindowSize Size in pixels of the template patch that is used
   * to compute weights. Should be odd. Recommended value 7 pixels
   * @param searchWindowSize Size in pixels of the window that is used to compute
   * weighted average for given pixel. Should be odd. Affect performance linearly:
   * greater searchWindowsSize - greater denoising time. Recommended value 21
   * pixels
   *
   * @see <a href="http://docs.opencv.org/modules/photo/doc/denoising.html#fastnlmeansdenoising">org.opencv.photo.Photo.fastNlMeansDenoising</a>
   */
      public static void fastNlMeansDenoising(Mat src, Mat dst, float h, int templateWindowSize, int searchWindowSize)
      {
  
          fastNlMeansDenoising_0(src.nativeObj, dst.nativeObj, h, templateWindowSize, searchWindowSize);
  
          return;
      }
  
  /**
   * <p>Perform image denoising using Non-local Means Denoising algorithm
   * http://www.ipol.im/pub/algo/bcm_non_local_means_denoising/ with several
   * computational optimizations. Noise expected to be a gaussian white noise</p>
   *
   * <p>This function expected to be applied to grayscale images. For colored images
   * look at <code>fastNlMeansDenoisingColored</code>.
   * Advanced usage of this functions can be manual denoising of colored image in
   * different colorspaces.
   * Such approach is used in <code>fastNlMeansDenoisingColored</code> by
   * converting image to CIELAB colorspace and then separately denoise L and AB
   * components with different h parameter.</p>
   *
   * @param src Input 8-bit 1-channel, 2-channel or 3-channel image.
   * @param dst Output image with the same size and type as <code>src</code>.
   *
   * @see <a href="http://docs.opencv.org/modules/photo/doc/denoising.html#fastnlmeansdenoising">org.opencv.photo.Photo.fastNlMeansDenoising</a>
   */
      public static void fastNlMeansDenoising(Mat src, Mat dst)
      {
  
          fastNlMeansDenoising_1(src.nativeObj, dst.nativeObj);
  
          return;
      }
  
  
      //
      // C++:  void fastNlMeansDenoisingColored(Mat src, Mat& dst, float h = 3, float hColor = 3, int templateWindowSize = 7, int searchWindowSize = 21)
      //
  
  /**
   * <p>Modification of <code>fastNlMeansDenoising</code> function for colored images</p>
   *
   * <p>The function converts image to CIELAB colorspace and then separately denoise
   * L and AB components with given h parameters using <code>fastNlMeansDenoising</code>
   * function.</p>
   *
   * @param src Input 8-bit 3-channel image.
   * @param dst Output image with the same size and type as <code>src</code>.
   * @param h Parameter regulating filter strength for luminance component. Bigger
   * h value perfectly removes noise but also removes image details, smaller h
   * value preserves details but also preserves some noise
   * @param hColor a hColor
   * @param templateWindowSize Size in pixels of the template patch that is used
   * to compute weights. Should be odd. Recommended value 7 pixels
   * @param searchWindowSize Size in pixels of the window that is used to compute
   * weighted average for given pixel. Should be odd. Affect performance linearly:
   * greater searchWindowsSize - greater denoising time. Recommended value 21
   * pixels
   *
   * @see <a href="http://docs.opencv.org/modules/photo/doc/denoising.html#fastnlmeansdenoisingcolored">org.opencv.photo.Photo.fastNlMeansDenoisingColored</a>
   */
      public static void fastNlMeansDenoisingColored(Mat src, Mat dst, float h, float hColor, int templateWindowSize, int searchWindowSize)
      {
  
          fastNlMeansDenoisingColored_0(src.nativeObj, dst.nativeObj, h, hColor, templateWindowSize, searchWindowSize);
  
          return;
      }
  
  /**
   * <p>Modification of <code>fastNlMeansDenoising</code> function for colored images</p>
   *
   * <p>The function converts image to CIELAB colorspace and then separately denoise
   * L and AB components with given h parameters using <code>fastNlMeansDenoising</code>
   * function.</p>
   *
   * @param src Input 8-bit 3-channel image.
   * @param dst Output image with the same size and type as <code>src</code>.
   *
   * @see <a href="http://docs.opencv.org/modules/photo/doc/denoising.html#fastnlmeansdenoisingcolored">org.opencv.photo.Photo.fastNlMeansDenoisingColored</a>
   */
      public static void fastNlMeansDenoisingColored(Mat src, Mat dst)
      {
  
          fastNlMeansDenoisingColored_1(src.nativeObj, dst.nativeObj);
  
          return;
      }
  
  
      //
      // C++:  void fastNlMeansDenoisingColoredMulti(vector_Mat srcImgs, Mat& dst, int imgToDenoiseIndex, int temporalWindowSize, float h = 3, float hColor = 3, int templateWindowSize = 7, int searchWindowSize = 21)
      //
  
  /**
   * <p>Modification of <code>fastNlMeansDenoisingMulti</code> function for colored
   * images sequences</p>
   *
   * <p>The function converts images to CIELAB colorspace and then separately denoise
   * L and AB components with given h parameters using <code>fastNlMeansDenoisingMulti</code>
   * function.</p>
   *
   * @param srcImgs Input 8-bit 3-channel images sequence. All images should have
   * the same type and size.
   * @param dst Output image with the same size and type as <code>srcImgs</code>
   * images.
   * @param imgToDenoiseIndex Target image to denoise index in <code>srcImgs</code>
   * sequence
   * @param temporalWindowSize Number of surrounding images to use for target
   * image denoising. Should be odd. Images from <code>imgToDenoiseIndex -
   * temporalWindowSize / 2</code> to <code>imgToDenoiseIndex - temporalWindowSize
   * / 2</code> from <code>srcImgs</code> will be used to denoise
   * <code>srcImgs[imgToDenoiseIndex]</code> image.
   * @param h Parameter regulating filter strength for luminance component. Bigger
   * h value perfectly removes noise but also removes image details, smaller h
   * value preserves details but also preserves some noise.
   * @param hColor a hColor
   * @param templateWindowSize Size in pixels of the template patch that is used
   * to compute weights. Should be odd. Recommended value 7 pixels
   * @param searchWindowSize Size in pixels of the window that is used to compute
   * weighted average for given pixel. Should be odd. Affect performance linearly:
   * greater searchWindowsSize - greater denoising time. Recommended value 21
   * pixels
   *
   * @see <a href="http://docs.opencv.org/modules/photo/doc/denoising.html#fastnlmeansdenoisingcoloredmulti">org.opencv.photo.Photo.fastNlMeansDenoisingColoredMulti</a>
   */
      public static void fastNlMeansDenoisingColoredMulti(List<Mat> srcImgs, Mat dst, int imgToDenoiseIndex, int temporalWindowSize, float h, float hColor, int templateWindowSize, int searchWindowSize)
      {
          Mat srcImgs_mat = Converters.vector_Mat_to_Mat(srcImgs);
          fastNlMeansDenoisingColoredMulti_0(srcImgs_mat.nativeObj, dst.nativeObj, imgToDenoiseIndex, temporalWindowSize, h, hColor, templateWindowSize, searchWindowSize);
  
          return;
      }
  
  /**
   * <p>Modification of <code>fastNlMeansDenoisingMulti</code> function for colored
   * images sequences</p>
   *
   * <p>The function converts images to CIELAB colorspace and then separately denoise
   * L and AB components with given h parameters using <code>fastNlMeansDenoisingMulti</code>
   * function.</p>
   *
   * @param srcImgs Input 8-bit 3-channel images sequence. All images should have
   * the same type and size.
   * @param dst Output image with the same size and type as <code>srcImgs</code>
   * images.
   * @param imgToDenoiseIndex Target image to denoise index in <code>srcImgs</code>
   * sequence
   * @param temporalWindowSize Number of surrounding images to use for target
   * image denoising. Should be odd. Images from <code>imgToDenoiseIndex -
   * temporalWindowSize / 2</code> to <code>imgToDenoiseIndex - temporalWindowSize
   * / 2</code> from <code>srcImgs</code> will be used to denoise
   * <code>srcImgs[imgToDenoiseIndex]</code> image.
   *
   * @see <a href="http://docs.opencv.org/modules/photo/doc/denoising.html#fastnlmeansdenoisingcoloredmulti">org.opencv.photo.Photo.fastNlMeansDenoisingColoredMulti</a>
   */
      public static void fastNlMeansDenoisingColoredMulti(List<Mat> srcImgs, Mat dst, int imgToDenoiseIndex, int temporalWindowSize)
      {
          Mat srcImgs_mat = Converters.vector_Mat_to_Mat(srcImgs);
          fastNlMeansDenoisingColoredMulti_1(srcImgs_mat.nativeObj, dst.nativeObj, imgToDenoiseIndex, temporalWindowSize);
  
          return;
      }
  
  
      //
      // C++:  void fastNlMeansDenoisingMulti(vector_Mat srcImgs, Mat& dst, int imgToDenoiseIndex, int temporalWindowSize, float h = 3, int templateWindowSize = 7, int searchWindowSize = 21)
      //
  
  /**
   * <p>Modification of <code>fastNlMeansDenoising</code> function for images
   * sequence where consequtive images have been captured in small period of time.
   * For example video. This version of the function is for grayscale images or
   * for manual manipulation with colorspaces.
   * For more details see http://citeseerx.ist.psu.edu/viewdoc/summary?doi=10.1.1.131.6394</p>
   *
   * @param srcImgs Input 8-bit 1-channel, 2-channel or 3-channel images sequence.
   * All images should have the same type and size.
   * @param dst Output image with the same size and type as <code>srcImgs</code>
   * images.
   * @param imgToDenoiseIndex Target image to denoise index in <code>srcImgs</code>
   * sequence
   * @param temporalWindowSize Number of surrounding images to use for target
   * image denoising. Should be odd. Images from <code>imgToDenoiseIndex -
   * temporalWindowSize / 2</code> to <code>imgToDenoiseIndex - temporalWindowSize
   * / 2</code> from <code>srcImgs</code> will be used to denoise
   * <code>srcImgs[imgToDenoiseIndex]</code> image.
   * @param h Parameter regulating filter strength for luminance component. Bigger
   * h value perfectly removes noise but also removes image details, smaller h
   * value preserves details but also preserves some noise
   * @param templateWindowSize Size in pixels of the template patch that is used
   * to compute weights. Should be odd. Recommended value 7 pixels
   * @param searchWindowSize Size in pixels of the window that is used to compute
   * weighted average for given pixel. Should be odd. Affect performance linearly:
   * greater searchWindowsSize - greater denoising time. Recommended value 21
   * pixels
   *
   * @see <a href="http://docs.opencv.org/modules/photo/doc/denoising.html#fastnlmeansdenoisingmulti">org.opencv.photo.Photo.fastNlMeansDenoisingMulti</a>
   */
      public static void fastNlMeansDenoisingMulti(List<Mat> srcImgs, Mat dst, int imgToDenoiseIndex, int temporalWindowSize, float h, int templateWindowSize, int searchWindowSize)
      {
          Mat srcImgs_mat = Converters.vector_Mat_to_Mat(srcImgs);
          fastNlMeansDenoisingMulti_0(srcImgs_mat.nativeObj, dst.nativeObj, imgToDenoiseIndex, temporalWindowSize, h, templateWindowSize, searchWindowSize);
  
          return;
      }
  
  /**
   * <p>Modification of <code>fastNlMeansDenoising</code> function for images
   * sequence where consequtive images have been captured in small period of time.
   * For example video. This version of the function is for grayscale images or
   * for manual manipulation with colorspaces.
   * For more details see http://citeseerx.ist.psu.edu/viewdoc/summary?doi=10.1.1.131.6394</p>
   *
   * @param srcImgs Input 8-bit 1-channel, 2-channel or 3-channel images sequence.
   * All images should have the same type and size.
   * @param dst Output image with the same size and type as <code>srcImgs</code>
   * images.
   * @param imgToDenoiseIndex Target image to denoise index in <code>srcImgs</code>
   * sequence
   * @param temporalWindowSize Number of surrounding images to use for target
   * image denoising. Should be odd. Images from <code>imgToDenoiseIndex -
   * temporalWindowSize / 2</code> to <code>imgToDenoiseIndex - temporalWindowSize
   * / 2</code> from <code>srcImgs</code> will be used to denoise
   * <code>srcImgs[imgToDenoiseIndex]</code> image.
   *
   * @see <a href="http://docs.opencv.org/modules/photo/doc/denoising.html#fastnlmeansdenoisingmulti">org.opencv.photo.Photo.fastNlMeansDenoisingMulti</a>
   */
      public static void fastNlMeansDenoisingMulti(List<Mat> srcImgs, Mat dst, int imgToDenoiseIndex, int temporalWindowSize)
      {
          Mat srcImgs_mat = Converters.vector_Mat_to_Mat(srcImgs);
          fastNlMeansDenoisingMulti_1(srcImgs_mat.nativeObj, dst.nativeObj, imgToDenoiseIndex, temporalWindowSize);
  
          return;
      }
  
  
      //
      // C++:  void inpaint(Mat src, Mat inpaintMask, Mat& dst, double inpaintRadius, int flags)
      //
  
  /**
   * <p>Restores the selected region in an image using the region neighborhood.</p>
   *
   * <p>The function reconstructs the selected image area from the pixel near the
   * area boundary. The function may be used to remove dust and scratches from a
   * scanned photo, or to remove undesirable objects from still images or video.
   * See http://en.wikipedia.org/wiki/Inpainting for more details.</p>
   *
   * <p>Note:</p>
   * <ul>
   *   <li> An example using the inpainting technique can be found at
   * opencv_source_code/samples/cpp/inpaint.cpp
   *   <li> (Python) An example using the inpainting technique can be found at
   * opencv_source_code/samples/python2/inpaint.py
   * </ul>
   *
   * @param src Input 8-bit 1-channel or 3-channel image.
   * @param inpaintMask Inpainting mask, 8-bit 1-channel image. Non-zero pixels
   * indicate the area that needs to be inpainted.
   * @param dst Output image with the same size and type as <code>src</code>.
   * @param inpaintRadius Radius of a circular neighborhood of each point
   * inpainted that is considered by the algorithm.
   * @param flags Inpainting method that could be one of the following:
   * <ul>
   *   <li> INPAINT_NS Navier-Stokes based method.
   *   <li> INPAINT_TELEA Method by Alexandru Telea [Telea04].
   * </ul>
   *
   * @see <a href="http://docs.opencv.org/modules/photo/doc/inpainting.html#inpaint">org.opencv.photo.Photo.inpaint</a>
   */
      public static void inpaint(Mat src, Mat inpaintMask, Mat dst, double inpaintRadius, int flags)
      {
  
          inpaint_0(src.nativeObj, inpaintMask.nativeObj, dst.nativeObj, inpaintRadius, flags);
  
          return;
      }
  
  
  
  
      // C++:  void fastNlMeansDenoising(Mat src, Mat& dst, float h = 3, int templateWindowSize = 7, int searchWindowSize = 21)
      private static native void fastNlMeansDenoising_0(long src_nativeObj, long dst_nativeObj, float h, int templateWindowSize, int searchWindowSize);
      private static native void fastNlMeansDenoising_1(long src_nativeObj, long dst_nativeObj);
  
      // C++:  void fastNlMeansDenoisingColored(Mat src, Mat& dst, float h = 3, float hColor = 3, int templateWindowSize = 7, int searchWindowSize = 21)
      private static native void fastNlMeansDenoisingColored_0(long src_nativeObj, long dst_nativeObj, float h, float hColor, int templateWindowSize, int searchWindowSize);
      private static native void fastNlMeansDenoisingColored_1(long src_nativeObj, long dst_nativeObj);
  
      // C++:  void fastNlMeansDenoisingColoredMulti(vector_Mat srcImgs, Mat& dst, int imgToDenoiseIndex, int temporalWindowSize, float h = 3, float hColor = 3, int templateWindowSize = 7, int searchWindowSize = 21)
      private static native void fastNlMeansDenoisingColoredMulti_0(long srcImgs_mat_nativeObj, long dst_nativeObj, int imgToDenoiseIndex, int temporalWindowSize, float h, float hColor, int templateWindowSize, int searchWindowSize);
      private static native void fastNlMeansDenoisingColoredMulti_1(long srcImgs_mat_nativeObj, long dst_nativeObj, int imgToDenoiseIndex, int temporalWindowSize);
  
      // C++:  void fastNlMeansDenoisingMulti(vector_Mat srcImgs, Mat& dst, int imgToDenoiseIndex, int temporalWindowSize, float h = 3, int templateWindowSize = 7, int searchWindowSize = 21)
      private static native void fastNlMeansDenoisingMulti_0(long srcImgs_mat_nativeObj, long dst_nativeObj, int imgToDenoiseIndex, int temporalWindowSize, float h, int templateWindowSize, int searchWindowSize);
      private static native void fastNlMeansDenoisingMulti_1(long srcImgs_mat_nativeObj, long dst_nativeObj, int imgToDenoiseIndex, int temporalWindowSize);
  
      // C++:  void inpaint(Mat src, Mat inpaintMask, Mat& dst, double inpaintRadius, int flags)
      private static native void inpaint_0(long src_nativeObj, long inpaintMask_nativeObj, long dst_nativeObj, double inpaintRadius, int flags);
  
  }
  