检测实时android摄像头预览的颜色代码

检测实时android摄像头预览的颜色代码,android,colors,android-camera,color-picker,Android,Colors,Android Camera,Color Picker,我想在相机预览时检测图像(实时流图像)的色码。我想开发一个类似android应用程序的示例android应用程序。请查看附件中的屏幕截图 我如何制作一个演示程序应用程序,通过简单地指向相机捕捉和识别颜色,并显示为该颜色的十六进制代码 任何帮助都将不胜感激。谢谢你抽出时间 这应该是你的出发点 通过触摸图像像素获取颜色 targetImage.setOnTouchListener(new ImageView.OnTouchListener(){ @Override public bo

我想在相机预览时检测图像(实时流图像)的色码。我想开发一个类似android应用程序的示例android应用程序。请查看附件中的屏幕截图

我如何制作一个演示程序应用程序,通过简单地指向相机捕捉和识别颜色,并显示为该颜色的十六进制代码

任何帮助都将不胜感激。谢谢你抽出时间


这应该是你的出发点

通过触摸图像像素获取颜色

targetImage.setOnTouchListener(new ImageView.OnTouchListener(){     
@Override   
public boolean onTouch(View v, MotionEvent event) {
    // TODO Auto-generated method stub       
    int x=0;
    int y=0;
    textView.setText("Touch coordinates : " +       
    String.valueOf(event.getX()) + "x" + String.valueOf(event.getY()));
    ImageView imageView = ((ImageView)v);
    Bitmap bitmap = ((BitmapDrawable)imageView.getDrawable()).getBitmap();
    int pixel = bitmap.getPixel(x,y);
    int redValue = Color.red(pixel);
    int blueValue = Color.blue(pixel);
    int greenValue = Color.green(pixel);


    return true;    }     
});
您将获得RGB颜色代码


中获得,您应该尝试此方法,其中x和y是pixle位置

    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);

看看这个应用程序的url,它应该会给你一些想法。它使用以下代码:

int frameHeight1 = camera.getParameters().getPreviewSize().height;
    int frameWidth1 = camera.getParameters().getPreviewSize().width;
    int rgb1[] = new int[frameWidth * frameHeight];
    decodeYUV420SP(rgb1, data, frameWidth, frameHeight);
    Bitmap bmp1 = Bitmap.createBitmap(rgb, frameWidth1, frameHeight1, Config.ARGB_8888);
    int pixel = bmp1.getPixel( x,y );
    int redValue1 = Color.red(pixel);
    int blueValue1 = Color.blue(pixel);
    int greenValue1 = Color.green(pixel);
    int thiscolor1 = Color.rgb(redValue1, greenValue1, blueValue1);

在“decodeYUV420SP(rgb、数据、帧宽、帧高)”中,您在哪里设置或获取“数据”值?此代码是否在Android
v4.2.2
API级别:
15
上工作?或者在棒棒糖+版本上工作?是的,它在安卓L和安卓M上也工作。您可以通过安装以下应用程序在其他版本中进行测试: