目前正在开展一个关于Android相机的项目,该项目要求我在实时预览期间或拍摄照片后检测某些颜色。
我已成功设置了带有实时预览功能的相机,但我目前仍然坚持检测颜色。例如,我想在相机的实时预览期间检测绿色并向用户发送反馈。它不一定需要在实时预览期间完成,因为我一直在考虑拍摄照片,然后可以更容易地完成颜色检测。
我是一个关于android编程的完整新手,所以关于如何编写颜色检测算法的任何方向都将非常感激!
答案 0 :(得分:1)
如果您想使用简单的方法,那么从相机获取位图图像并使用bitmap.getpixel(int x,int y)
获取颜色并将像素与您想要的颜色进行比较
答案 1 :(得分:0)
“Color Grab”是一款可满足您需求的Android应用程序。该应用程序具有最佳的颜色检测/识别算法,它完美地工作。您可以查看它是如何工作的。
答案 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);