Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/opencv/3.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Android 用安卓摄像头实现可见光通信_Android_Opencv_Image Processing_Android Camera_Javacv - Fatal编程技术网

Android 用安卓摄像头实现可见光通信

Android 用安卓摄像头实现可见光通信,android,opencv,image-processing,android-camera,javacv,Android,Opencv,Image Processing,Android Camera,Javacv,我有一个圆圈,它根据数据编码方案改变颜色。例如,我想在该圆圈的颜色变化中对消息“Hello”进行编码。这意味着从红色到绿色的过渡(填充圆的颜色从红色变为绿色)可以解码为二进制1,从绿色到蓝色的过渡可以解码为0。所以我的信息可以用这种格式编码。这部分是我的发射机已经准备好了 现在我希望能够通过使用Android摄像头的图像处理算法接收这些编码数据。我是图像处理新手,经过一番研究后,我发现我可以使用OpenCV或JavaCV进行应用。你建议我使用哪一种?我应该遵循什么方法?我已经能够创建一个应用程序

我有一个圆圈,它根据数据编码方案改变颜色。例如,我想在该圆圈的颜色变化中对消息“Hello”进行编码。这意味着从红色到绿色的过渡(填充圆的颜色从红色变为绿色)可以解码为二进制1,从绿色到蓝色的过渡可以解码为0。所以我的信息可以用这种格式编码。这部分是我的发射机已经准备好了

现在我希望能够通过使用Android摄像头的图像处理算法接收这些编码数据。我是图像处理新手,经过一番研究后,我发现我可以使用OpenCV或JavaCV进行应用。你建议我使用哪一种?我应该遵循什么方法?我已经能够创建一个应用程序,可以实时检测圆。然而,我无法思考下一步该做什么。 我遵循opencv示例中的color_blob_检测示例,知道如何检测帧中的特定颜色

在这里,我感到困惑

  • 我应该继续检查所有画面中的三种颜色:红、绿、蓝吗?是否有办法确定每个帧中相同的百分比,以便我可以将百分比与两个连续帧进行比较,并说已经发生了转换?**

  • 我应该在一个帧缓冲区(比如500帧)中缓冲几个帧,然后从缓冲区开始逐个处理我的帧。这可以考虑提高帧速率,因为在这种情况下,onPreviewFrame()方法代码将减少到最小值**


  • 请建议我该怎么做?发送器将一次又一次地发送相同的消息,我不介意固定发送的位/字节数。我只需要识别一个以这种方式传输的“ID”。

    我真的对你的第一个问题感到困惑。计算特定颜色的百分比不是图像处理吗?为什么你认为检查这三种颜色可能更贵

    关于第二个问题,所需的帧速率取决于您的协议。如果转换发生在10 Hz,则只需10 FPS即可破译它们


    另一方面,可以将帧数据复制到一边,并在单独的线程中在队列中进行处理,这样onPreviewFrame()循环(即Android应用程序主线程)就不会被卡住。

    感谢Michael的编辑。请帮助我实现同样的实现。我的使用案例是从相机闪光灯中读取编码的数据(数字)。感谢您的回复,是的,检查dor百分比确实是图像处理,我只是想知道如何使用opencv实现。其次,是的,我确实认为检查所有三种颜色会很昂贵,因为所有三种颜色都必须重复相同的程序。“你不认为这会很贵吗?”亚历克斯·科恩,你能给我介绍一下接收器端要处理的LED数据转换的概况吗。。我在下面的receiver end.链接中找到了一些代码片段,其中ndk代码是完整的。。非常感谢,如果您建议我执行pdf@SenthilMg中的接收器ndk代码,我恐怕这不是一个我可以用一只脚回答的问题:(