问题:手机如何实时传送摄像头的视频流到电脑端. 列出可行思路就行或解答我的疑问
手机是安卓7.0以上系统 android studio 3.2. 电脑是win7-win10系统 C# VS2015编程.
网络是局域网,IP可以固定下来.
PS:我的想法 手机实时录制视频流,采用间隔0.1秒采集一次图像,压缩成特定格式,再把特定格式压缩包发给电脑,电脑解码成图像,给halcon识别图像,识别出来的信息输入到表格里.
PS2:进度 安卓采集图像 搞定
安卓压缩图像 没搞定 没思路
安卓传输压缩包 没搞定 没思路
电脑接收压缩包 没搞定 完全没想法
电脑解码 没搞定 完全不懂
halcon识别图像(里面有3个条形码) 成字符串 搞定
字符串导入表格 搞定
PS3:疑问1 我传输的是0.1秒一次,就算是高清的图片,是不是不用压缩也不会对公司局域网形成干扰.
疑问2 传送压缩包或图片,并接收这两步完全没想法
安卓手机代替扫描枪识别产品条形码,最终生成表格统计信息,现手机传送图片到电脑这步卡住
- 写回答
- 好问题 0 提建议
- 追加酬金
- 关注问题
- 邀请回答
-
1条回答 默认 最新
- X峰 2019-01-17 17:00关注
压缩包传送,可以用流来传输(I/O)文件流。
图片一般也是文件流或者直接base64
图片压缩:
/**
* 压缩图片(质量压缩)
* @param bitmap
*/
public static File compressImage(Bitmap bitmap) {
ByteArrayOutputStream baos = new ByteArrayOutputStream();
bitmap.compress(Bitmap.CompressFormat.JPEG, 100, baos);//质量压缩方法,这里100表示不压缩,把压缩后的数据存放到baos中
int options = 100;
while (baos.toByteArray().length / 1024 > 500) { //循环判断如果压缩后图片是否大于1024kb,大于继续压缩
baos.reset();//重置baos即清空baos
options -= 10;//每次都减少10
bitmap.compress(Bitmap.CompressFormat.JPEG, options, baos);//这里压缩options%,把压缩后的数据存放到baos中
long length = baos.toByteArray().length;
}
SimpleDateFormat format = new SimpleDateFormat("yyyyMMddHHmmss");
Date date = new Date(System.currentTimeMillis());
String filename = format.format(date);
File file = new File(Environment.getExternalStorageDirectory(), filename + ".png");
try {
FileOutputStream fos = new FileOutputStream(file);
try {
fos.write(baos.toByteArray());
fos.flush();
fos.close();
} catch (IOException e) {
// BAFLogger.e(TAG,e.getMessage());
e.printStackTrace();
}
} catch (FileNotFoundException e) {
// BAFLogger.e(TAG,e.getMessage());
e.printStackTrace();
}
recycleBitmap(bitmap);
return file;
}解决 无用评论 打赏 举报
悬赏问题
- ¥15 maixpy训练模型,模型训练好了以后,开发板通电会报错,不知道是什么问题
- ¥30 截图中的mathematics程序转换成matlab
- ¥15 动力学代码报错,维度不匹配
- ¥15 Power query添加列问题
- ¥50 Kubernetes&Fission&Eleasticsearch
- ¥15 有没有帮写代码做实验仿真的
- ¥15 報錯:Person is not mapped,如何解決?
- ¥15 c++头文件不能识别CDialog
- ¥15 Excel发现不可读取的内容
- ¥15 关于#stm32#的问题:CANOpen的PDO同步传输问题