java动态统计图_【Java】人流量统计-动态版之视频转图识别

本帖主要示例人流量统计-动态版接口。通过读取视频转图片识别。直接获取摄像头的识别示例请访问http://ai.baidu.com/forum/topic/show/940536

ffmepg javacv 请自行百度了解一下

【Java】人流量统计-动态版之摄像头识别显示 http://ai.baidu.com/forum/topic/show/940536

需要用到的jar

//xml格式会丢失标签。社区技术要看一下哦。语言最好也支持xml 开发者们自行访问 URL地址 复制maven的xml配置内容即可

// URL: https://mvnrepository.com/artifact/org.bytedeco/javacv

compile group: 'org.bytedeco', name: 'javacv', version: '1.4.1'

// URL: https://mvnrepository.com/artifact/com.alibaba/fastjson

compile group: 'com.alibaba', name: 'fastjson', version: '1.2.35'

// URL: https://mvnrepository.com/artifact/org.bytedeco.javacpp-presets/ffmpeg-platform

compile group: 'org.bytedeco.javacpp-presets', name: 'ffmpeg-platform', version: '3.2.1-1.3'

需要用到的Java工具类

FileUtil=https://ai.baidu.com/file/658A35ABAB2D404FBF903F64D47C1F72

Base64Util=https://ai.baidu.com/file/C8D81F3301E24D2892968F09AE1AD6E2

HttpUtil=https://ai.baidu.com/file/544D677F5D4E4F17B4122FBD60DB82B3

小帅写的工具类(仅供参考不接受批评code low不low)

import java.awt.image.BufferedImage;

import java.io.IOException;

import org.bytedeco.javacv.FFmpegFrameGrabber;

import org.bytedeco.javacv.Frame;

import org.bytedeco.javacv.Java2DFrameConverter;

/**

* 视频转图片

* @author 小帅丶

*/

public class VideoFrame2ImageUtil {

private static FFmpegFrameGrabber fFmpegFrameGrabber;

/**

* 获取视频一帧内容转为BufferedImage

* 将视频文件帧处理并以“jpg”格式进行存储。

* 依赖FrameToBufferedImage方法:将frame转换为bufferedImage对象

* @param videoPath 视频本地路径地址包含视频文件名称和后缀名

*/

public static BufferedImage getVideoFramer4bufferedImage(String videoPath) {

//Frame对象

Frame frame = null;

BufferedImage bufferedImage = null;

//获取视频文件

fFmpegFrameGrabber = new FFmpegFrameGrabber(videoPath);

try {

fFmpegFrameGrabber.start();

//获取视频每秒的帧数

double secondFramr = fFmpegFrameGrabber.getFrameRate();

System.out.println("视频一秒的帧数: " + secondFramr);

//获取视频总帧数

int ftp = fFmpegFrameGrabber.getLengthInFrames();

System.out.println("视频时长(秒): " + ftp/fFmpegFrameGrabber.getFrameRate());

System.out.println("开始运行视频提取一帧并返回BufferedImage,耗时较短");

// 获取帧

frame = fFmpegFrameGrabber.grabImage();

if (frame != null) {

bufferedImage = FrameToBufferedImage(frame);

}

System.out.println("============运行结束============");

fFmpegFrameGrabber.stop();

fFmpegFrameGrabber.close();

} catch (IOException e) {

System.out.println("出现异常了"+e.getMessage());

}

return bufferedImage;

}

/**

* FrameToBufferedImage Frame转BufferedImage

* @param frame

* @return BufferedImage

*/

public static BufferedImage FrameToBufferedImage(Frame frame) {

// 创建BufferedImage对象

Java2DFrameConverter converter = new Java2DFrameConverter();

BufferedImage bufferedImage = converter.getBufferedImage(frame);

return bufferedImage;

}

调用接口示例代码

import java.awt.image.BufferedImage;

import java.io.ByteArrayOutputStream;

import java.net.URLEncoder;

import javax.imageio.ImageIO;

import cn.xsshome.util.Base64Util;

import cn.xsshome.util.HttpUtil;

import cn.xsshome.util.VideoFrame2ImageUtil;

/**

* 视频帧转图片请求人流量统计(动态版)接口

* @author 小帅丶

*

*/

public class BodyTrackingAPISample {

//人流量统计(动态版)接口地址

private static String BODY_TRACKING_URL="https://aip.baidubce.com/rest/2.0/image-classify/v1/body_tracking";

public static void main(String[] args) throws Exception {

String access_token = "token";

String videoPath = "本地一个视频文件路径";

BufferedImage bufferedImage = VideoFrame2ImageUtil.getVideoFramer4bufferedImage(videoPath);

ByteArrayOutputStream baos = new ByteArrayOutputStream();

ImageIO.write(bufferedImage, "jpg", baos);

//转为base64

String base64 = Base64Util.encode(baos.toByteArray());

String params = "image="+URLEncoder.encode(base64,"utf-8")+"&dynamic=false&show=true";

String result = HttpUtil.post(BODY_TRACKING_URL, access_token, params );

System.out.println(result);

}

}

  • 1
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值