我还不懂怎么用NDK和安卓平台上的OpenCV(照着http://underthehood.blog.51cto.com/2531780/670169 上的安装教程装了,Cygwin可以用,$NDK/ndk-build指令也可以用,但是一运行程序就是打不开),如果有前辈懂得怎么去安装使用这两个的话请指导一下不胜感激。
因为不会用前面两个,然后我需要先把一张真彩图转换为灰度图(单通道)而不是伪灰度图(三通道),主要是为了继续转换为二值图进行后续处理。所以我现在选择这个方法将图片变为灰度图。 /**
* 图片去色,返回灰度图片
*
* @param bmpOriginal
* 传入的图片
* @return 去色后的图片
*/
public static Bitmap toGrayscale(Bitmap bmpOriginal) {
int width, height;
height = bmpOriginal.getHeight();
width = bmpOriginal.getWidth();
Bitmap bmpGrayscale = Bitmap.createBitmap(width, height,
Bitmap.Config.RGB_565);
Canvas c = new Canvas(bmpGrayscale);
Paint paint = new Paint();
ColorMatrix cm = new ColorMatrix();
cm.setSaturation(0);
ColorMatrixColorFilter f = new ColorMatrixColorFilter(cm);
paint.setColorFilter(f);
c.drawBitmap(bmpOriginal, 0, 0, paint);
// c.drawBitm
return bmpGrayscale;
}
网上百度的安卓平台处理图像为灰度图的也基本上是这个算法,但是我看了一下drawBitmap的参数感觉经过setSaturation(0)的处理貌似仍然是三通道啊(这个函数不懂,求解释一下,百度一下找不到清楚的解释),然后想问的就是这个方法是转成灰度图(单通道)的吗?????
小弟菜鸟,求各位大大帮帮忙了。android平台图像处理opencvndk
因为不会用前面两个,然后我需要先把一张真彩图转换为灰度图(单通道)而不是伪灰度图(三通道),主要是为了继续转换为二值图进行后续处理。所以我现在选择这个方法将图片变为灰度图。 /**
* 图片去色,返回灰度图片
*
* @param bmpOriginal
* 传入的图片
* @return 去色后的图片
*/
public static Bitmap toGrayscale(Bitmap bmpOriginal) {
int width, height;
height = bmpOriginal.getHeight();
width = bmpOriginal.getWidth();
Bitmap bmpGrayscale = Bitmap.createBitmap(width, height,
Bitmap.Config.RGB_565);
Canvas c = new Canvas(bmpGrayscale);
Paint paint = new Paint();
ColorMatrix cm = new ColorMatrix();
cm.setSaturation(0);
ColorMatrixColorFilter f = new ColorMatrixColorFilter(cm);
paint.setColorFilter(f);
c.drawBitmap(bmpOriginal, 0, 0, paint);
// c.drawBitm
return bmpGrayscale;
}
网上百度的安卓平台处理图像为灰度图的也基本上是这个算法,但是我看了一下drawBitmap的参数感觉经过setSaturation(0)的处理貌似仍然是三通道啊(这个函数不懂,求解释一下,百度一下找不到清楚的解释),然后想问的就是这个方法是转成灰度图(单通道)的吗?????
小弟菜鸟,求各位大大帮帮忙了。android平台图像处理opencvndk
解决方案 »
免费领取超大流量手机卡,每月29元包185G流量+100分钟通话, 中国电信官方发货