Android Open Source - Operation-Valkyrie Grayscale






From Project

Back to project page Operation-Valkyrie.

License

The source code is released under:

Terms and conditions Preamble: This Agreement, signed on Jun 10, 2012 [hereinafter: Effective Date] governs the relationship between the Enduser, a private person, (hereinafter: Licensee) and Paul N...

If you think the Android project Operation-Valkyrie listed in this page is inappropriate, such as containing malicious code/tools or violating the copyright, please email info at java2s dot com, thanks.

Java Source Code

/**
 * /* www  . jav a  2 s .com*/
 * COPYRIGHT: Paul Neuhold, Laurenz Theuerkauf, Alexander Ritz, Jakob Schweighofer, Milo Tischler
 * ? Milo Tischler, Jakob Schweighofer, Alexander Ritz, Paul Neuhold, Laurenz Theuerkauf
 * 
 */

package valkyrie.filter.grayscale;

import org.opencv.android.Utils;
import org.opencv.core.Mat;
import org.opencv.highgui.Highgui;
import org.opencv.imgproc.Imgproc;

import valkyrie.filter.FilterAssets;
import valkyrie.filter.FilterInternalStorage;
import valkyrie.filter.IFilter;
import valkyrie.main.R;
import valkyrie.ui.MainActivity;
import android.app.Activity;
import android.graphics.Bitmap;
import android.util.Log;
import android.view.LayoutInflater;
import android.widget.TableLayout;

/**
 * A Filter for the Camera.
 * The Camera Image is processed trough this Filter when active.
 * 
 * In this Case the image is converted to grey scale.
 */
public class Grayscale implements IFilter {

  /**
   * The definition of this Filter, its name.
   */
  private static final String TAG = "Grayscale";

  /**
   * Setup the storage for this Filter.
   * 
   * @param filterInternalStorage
   *            FilterInternalStorage, object that manages the image storage for the Filter
   * @param filterAssets
   *            FilterAssets, manages any needed Files for the Filter
   * @param firstRun
   *            Boolean, defines whether its the first run of the app or not
   */
  public void setup(FilterInternalStorage filterInternalStorage, FilterAssets filterAssets, Boolean firstRun) {

  }

  /**
   * Returns the Name of this Filter.
   * 
   * @return String the name of this Filter
   */
  public String getName() {
    return this.getClass().getSimpleName();
  }

  /**
   * Returns the Icon of this Filter.
   * 
   * @return
   */
  public Bitmap getIcon() {
    return null;
  }

  /**
   * Processes the PreviewImage and adds an effect.
   * In this case the image is converted to a grey scale image.
   * 
   * @param bitmapMat
   *            Mat (OpenCV), Matrix representation of the image to be processed.
   * @return Bitmap the manipulated Bitmap.
   */
  public Bitmap manipulatePreviewImage(Mat bitmapMat) {
    Imgproc.cvtColor(bitmapMat, bitmapMat, Imgproc.COLOR_GRAY2RGBA, 4);

    Bitmap bitmap = Bitmap.createBitmap(bitmapMat.cols(), bitmapMat.rows(), Bitmap.Config.ARGB_8888);
    Utils.matToBitmap(bitmapMat, bitmap);
    bitmapMat.release();

    return bitmap;
  }

  /**
   * Processes the final Image and adds an effect.
   * In this case the image is converted to a greyscale image.
   * 
   * @param bitMap
   *            Mat (OpenCV), Matrix representation of the image to be processed.
   * @return Bitmap the manipulated Bimap.
   */
  public Bitmap manipulateImage(Mat bitmapMat) {
    Imgproc.cvtColor(bitmapMat, bitmapMat, Imgproc.COLOR_GRAY2RGBA, 4);

    Bitmap bitmap = Bitmap.createBitmap(bitmapMat.cols(), bitmapMat.rows(), Bitmap.Config.ARGB_8888);
    Utils.matToBitmap(bitmapMat, bitmap);
    bitmapMat.release();

    return bitmap;
  }

  /**
   * Returns the Format of the CameraImage.
   * 
   * @return int the ImageFormat of the Camera
   */
  public int getFilterCaptureFormat() {
    return Highgui.CV_CAP_ANDROID_GREY_FRAME;
  }

  /**
   * Returns the defined UI-Elements for the Options Panel as whole RelativeLayout.
   * 
   * @param mainActivity
   *            Activity, the main activity of the Program. Gives us access to the LayoutInflater.
   */
  public TableLayout getUIElements(Activity mainActivity) {
    final LayoutInflater inflater = (LayoutInflater) mainActivity
        .getSystemService(MainActivity.LAYOUT_INFLATER_SERVICE);

    return (TableLayout) inflater.inflate(R.layout.greyscale, null);
  }

  /**
   * Does the image conversion to grey scale
   * 
   * @deprecated effect not used anymore
   * @param bitmapMat
   *            Mat (OpenCV), Matrix representation of the image used as input
   * @return Bitmap the manipulated Bitmap
   */
  private Bitmap toGrayscale(Mat bitmapMat) {
    if (bitmapMat == null) {
      Log.e(TAG, "Bitmap Mat is null");
    }

    Bitmap bitmap = Bitmap.createBitmap(bitmapMat.cols(), bitmapMat.rows(), Bitmap.Config.ARGB_8888);

    Imgproc.cvtColor(bitmapMat, bitmapMat, Imgproc.COLOR_BGR2GRAY);
    Imgproc.cvtColor(bitmapMat, bitmapMat, Imgproc.COLOR_GRAY2RGBA, 4);

    Utils.matToBitmap(bitmapMat, bitmap);

    bitmapMat.release();

    return bitmap;
  }
}




Java Source Code List

org.opencv.android.Utils.java
org.opencv.calib3d.Calib3d.java
org.opencv.calib3d.StereoBM.java
org.opencv.calib3d.StereoSGBM.java
org.opencv.core.Algorithm.java
org.opencv.core.Core.java
org.opencv.core.CvException.java
org.opencv.core.CvType.java
org.opencv.core.MatOfByte.java
org.opencv.core.MatOfDMatch.java
org.opencv.core.MatOfDouble.java
org.opencv.core.MatOfFloat4.java
org.opencv.core.MatOfFloat6.java
org.opencv.core.MatOfFloat.java
org.opencv.core.MatOfInt4.java
org.opencv.core.MatOfInt.java
org.opencv.core.MatOfKeyPoint.java
org.opencv.core.MatOfPoint2f.java
org.opencv.core.MatOfPoint3.java
org.opencv.core.MatOfPoint3f.java
org.opencv.core.MatOfPoint.java
org.opencv.core.MatOfRect.java
org.opencv.core.Mat.java
org.opencv.core.Point3.java
org.opencv.core.Point.java
org.opencv.core.Range.java
org.opencv.core.Rect.java
org.opencv.core.RotatedRect.java
org.opencv.core.Scalar.java
org.opencv.core.Size.java
org.opencv.core.TermCriteria.java
org.opencv.features2d.DMatch.java
org.opencv.features2d.DescriptorExtractor.java
org.opencv.features2d.DescriptorMatcher.java
org.opencv.features2d.FeatureDetector.java
org.opencv.features2d.Features2d.java
org.opencv.features2d.GenericDescriptorMatcher.java
org.opencv.features2d.KeyPoint.java
org.opencv.highgui.Highgui.java
org.opencv.highgui.VideoCapture.java
org.opencv.imgproc.Imgproc.java
org.opencv.imgproc.Moments.java
org.opencv.imgproc.Subdiv2D.java
org.opencv.ml.CvANN_MLP_TrainParams.java
org.opencv.ml.CvANN_MLP.java
org.opencv.ml.CvBoostParams.java
org.opencv.ml.CvBoost.java
org.opencv.ml.CvDTreeParams.java
org.opencv.ml.CvDTree.java
org.opencv.ml.CvERTrees.java
org.opencv.ml.CvGBTreesParams.java
org.opencv.ml.CvGBTrees.java
org.opencv.ml.CvKNearest.java
org.opencv.ml.CvNormalBayesClassifier.java
org.opencv.ml.CvParamGrid.java
org.opencv.ml.CvRTParams.java
org.opencv.ml.CvRTrees.java
org.opencv.ml.CvSVMParams.java
org.opencv.ml.CvSVM.java
org.opencv.ml.CvStatModel.java
org.opencv.ml.EM.java
org.opencv.ml.Ml.java
org.opencv.objdetect.CascadeClassifier.java
org.opencv.objdetect.HOGDescriptor.java
org.opencv.objdetect.Objdetect.java
org.opencv.photo.Photo.java
org.opencv.utils.Converters.java
org.opencv.video.BackgroundSubtractorMOG.java
org.opencv.video.BackgroundSubtractor.java
org.opencv.video.KalmanFilter.java
org.opencv.video.Video.java
valkyrie.colorpicker.ColorPickerDialog.java
valkyrie.colorpicker.ColorPicker.java
valkyrie.file.DecodeBitmaps.java
valkyrie.file.FileManager.java
valkyrie.filter.FilterAssets.java
valkyrie.filter.FilterInternalStorage.java
valkyrie.filter.FilterManager.java
valkyrie.filter.FilterUIPosition.java
valkyrie.filter.IFilter.java
valkyrie.filter.ascii.Ascii.java
valkyrie.filter.ascii.Converter.java
valkyrie.filter.ascii.Font.java
valkyrie.filter.ascii.Options.java
valkyrie.filter.canny.Canny.java
valkyrie.filter.grayscale.Grayscale.java
valkyrie.filter.nofilter.NoFilter.java
valkyrie.ui.IUpdateableUI.java
valkyrie.ui.LayoutManager.java
valkyrie.ui.MainActivity.java
valkyrie.ui.UpdateableRelativeLayout.java
valkyrie.ui.gallery.AboutActivity.java
valkyrie.ui.gallery.GalleryActivity.java
valkyrie.ui.gallery.ImageAdapter.java
valkyrie.ui.gallery.ShowPicActivity.java
valkyrie.ui.preview.CameraPreviewViewCV.java
valkyrie.widget.MultiDirectionSlidingDrawer.java
valkyrie.widget.TouchImageView.java