Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/solr/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 camera2连续图像流_Android_Android Asynctask_Streaming_Android Camera2 - Fatal编程技术网

Android camera2连续图像流

Android camera2连续图像流,android,android-asynctask,streaming,android-camera2,Android,Android Asynctask,Streaming,Android Camera2,目前正在尝试为我的卷积神经网络图像分类器创建前端。 我正在尝试构建的是一个应用程序,它将连续的图像流发送到我的服务器进行分类,总的分类流将被平均,并供用户查看。 我之所以想要这个特性,是因为对同一个3D对象的许多图像进行分类可以提高准确性 在github的camera2演示版上构建应用程序时,我无法用谷歌搜索解决方案 我曾尝试创建一个异步任务,该任务将在onPostExecute处重新运行takePhoto()方法,但取消该任务几乎是不可能的,因为我没有将该任务保存为变量,因此不允许重新运行该任

目前正在尝试为我的卷积神经网络图像分类器创建前端。 我正在尝试构建的是一个应用程序,它将连续的图像流发送到我的服务器进行分类,总的分类流将被平均,并供用户查看。 我之所以想要这个特性,是因为对同一个3D对象的许多图像进行分类可以提高准确性

在github的camera2演示版上构建应用程序时,我无法用谷歌搜索解决方案

我曾尝试创建一个异步任务,该任务将在
onPostExecute
处重新运行
takePhoto()
方法,但取消该任务几乎是不可能的,因为我没有将该任务保存为变量,因此不允许重新运行该任务

此外,每次我拍照时,设备都会有点结巴,这是使用camera2不可避免的吗

我曾考虑过使用较旧的camera api,camera2在
a**
中是一个完全的难题

在这一点上,任何新的想法都会很好。 如果任何能够使用camera2或旧ap轻松传输图像的人能够发布一个示例或帮助我解决这个问题,我将不胜感激

这是我的任务,如果这确实可以工作,我只是做错了:

public class AsyncTakePicture extends AsyncTask<Void, Void, Void> {
    private boolean running = true;

    @Override
    protected void onCancelled() {
        running = false;
    }

    @Override
    protected Void doInBackground(Void... params) {
        while (running) {
            takePicture();
            try {
                // no need for alot of images, so one image per 2 seconds is good
                Thread.sleep(2000);
            } catch (Exception e) {
                running = false;
            }
        }
        return null;
    }

    protected void onPostExecute(Void result) {
        if (running){
            myAsyncTask.execute();
        } else {
            Log.i("AsyncTask:"," done");
        }
    }
}
公共类AsyncTakePicture扩展了AsyncTask{
私有布尔运行=真;
@凌驾
受保护的void onCancelled(){
运行=错误;
}
@凌驾
受保护的Void doInBackground(Void…参数){
(跑步时){
拍摄照片();
试一试{
//不需要很多图像,因此每2秒一个图像是好的
《睡眠》(2000年);
}捕获(例外e){
运行=错误;
}
}
返回null;
}
受保护的void onPostExecute(void结果){
如果(正在运行){
myAsyncTask.execute();
}否则{
Log.i(“异步任务:,“完成”);
}
}
}
这个想法是,一旦任务被调用,它将重新运行并拍摄更多照片,直到取消为止。调用Async是因为我不希望UI滞后。问题是,要重复这个任务,我不能将它作为变量启动,如果我不能启动,那么我就不能使用
cancel(boolean)