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