使用Android相机进行颜色检测

时间:2011-11-12 12:43:06

标签: android android-camera

目前正在开展一个关于Android相机的项目,该项目要求我在实时预览期间或拍摄照片后检测某些颜色。

我已成功设置了带有实时预览功能的相机,但我目前仍然坚持检测颜色。例如,我想在相机的实时预览期间检测绿色并向用户发送反馈。它不一定需要在实时预览期间完成,因为我一直在考虑拍摄照片,然后可以更容易地完成颜色检测。

我是一个关于android编程的完整新手,所以关于如何编写颜色检测算法的任何方向都将非常感激!

3 个答案:

答案 0 :(得分:1)

如果您想使用简单的方法,那么从相机获取位图图像并使用bitmap.getpixel(int x,int y)获取颜色并将像素与您想要的颜色进行比较

答案 1 :(得分:0)

“Color Grab”是一款可满足您需求的Android应用程序。该应用程序具有最佳的颜色检测/识别算法,它完美地工作。您可以查看它是如何工作的。

Color Grab on Google Play

答案 2 :(得分:0)

你应该尝试这个,其中x和y是像素位置

int frameHeight = camera.getParameters().getPreviewSize().height;
int frameWidth = camera.getParameters().getPreviewSize().width;
int rgb[] = new int[frameWidth * frameHeight];
decodeYUV420SP(rgb, data, frameWidth, frameHeight);
Bitmap bmp = Bitmap.createBitmap(rgb, frameWidth, frameHeight, Config.ARGB_8888);
int pixel = bmp.getPixel( x,y );
int redValue = Color.red(pixel);
int blueValue = Color.blue(pixel);
int greenValue = Color.green(pixel);
int thiscolor = Color.rgb(redValue, greenValue, blueValue);