问题:手机如何实时传送摄像头的视频流到电脑端. 列出可行思路就行或解答我的疑问
手机是安卓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 有偿求码,CNN+LSTM实现单通道脑电信号EEG的睡眠分期评估
- ¥15 没有证书,nginx怎么反向代理到只能接受https的公网网站
- ¥50 成都蓉城足球俱乐部小程序抢票
- ¥15 yolov7训练自己的数据集
- ¥15 esp8266与51单片机连接问题(标签-单片机|关键词-串口)(相关搜索:51单片机|单片机|测试代码)
- ¥15 电力市场出清matlab yalmip kkt 双层优化问题
- ¥30 ros小车路径规划实现不了,如何解决?(操作系统-ubuntu)
- ¥20 matlab yalmip kkt 双层优化问题
- ¥15 如何在3D高斯飞溅的渲染的场景中获得一个可控的旋转物体
- ¥88 实在没有想法,需要个思路