从相机预览中获取触摸像素的颜色

时间:2014-02-15 06:27:46

标签: android image-processing camera surfaceview

我创建了一个打开相机的演示应用程序。现在我想在用户触摸实时相机预览时获得像素的颜色。

我试过覆盖onTouchEvent并且我在getting the position of pixel中成功了x,y but我没有从中获取RGB color value。它始终显示{{1} }}

欢迎所有建议,包括实现相同功能的任何替代方法。 [0,0,0]

代码:

Excluding OpenCv because it requires to install OpenCvManager apk also to support my application

2 个答案:

答案 0 :(得分:3)

似乎myPixels是2D数据的一维表示(宽x高)。

这意味着myPixels的长度为(宽*高)。

让我们说像素是(x,y)然后

int idx = ( height * y ) + x;

int color = myPixels[idx];

根据以上信息,您可以修改decodeYUV420SP方法,仅输出特定像素的颜色。

答案 1 :(得分:3)

我采用了不同的方法来解决它。我会在获得免费后立即发布代码。

Algorithm :
  • 在实时相机上创建叠加层
  • 当用户触摸时,使用从实时摄像头获取的最新YUV缓冲流的RGB数据更新覆盖
  • 从叠加图像中选择RGB颜色
相关问题