android opencv bitmap grayscale

android-opencv conversión de mat a escala de grises con el uso de matToBitmap/bitmapToMat



grayscale (1)

Agregue el siguiente código en su bloque de código:

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

O puede acceder a los píxeles usted mismo:

for(int i=0;i<imgToProcess.height();i++){ for(int j=0;j<imgToProcess.width();j++){ double y = 0.3 * imgToProcess.get(i, j)[0] + 0.59 * imgToProcess.get(i, j)[1] + 0.11 * imgToProcess.get(i, j)[2]; imgToProcess.put(i, j, new double[]{y, y, y, 255}); } }

Estoy usando una nueva biblioteca opencv de willowgarage en eclipse. Y quiero convertir una variable mat a escala de grises, intenté todo lo que encontré en la red, pero no funcionaron para mí.

Aquí está mi código

package com.deneme.deneme; import android.app.Activity; import android.os.Bundle; import android.widget.ImageView; import org.opencv.android.Utils; import org.opencv.core.Mat; import org.opencv.imgproc.Imgproc; import android.graphics.Bitmap; import android.graphics.BitmapFactory; public class main extends Activity { /** Called when the activity is first created. */ @Override public void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.main); ImageView img=(ImageView) findViewById(R.id.pic); Bitmap bmp = BitmapFactory.decodeResource(getResources(), R.drawable.p26); Mat imgToProcess=Utils.bitmapToMat(bmp); //****** //right here I need to convert this imgToProcess to grayscale for future opencv processes //****** Bitmap bmpOut = Bitmap.createBitmap(imgToProcess.cols(), imgToProcess.rows(), Bitmap.Config.ARGB_8888); Utils.matToBitmap(imgToProcess, bmpOut); img.setImageBitmap(bmpOut); }

}