import java.util.Properties;
import java.util.Random;
import com.google.gson.Gson;
import com.google.gson.JsonObject;
import com.google.gson.JsonParser;
import nu.pattern.OpenCV;
import org.apache.kafka.clients.producer.KafkaProducer;
import org.apache.kafka.clients.producer.Producer;
import org.apache.kafka.clients.producer.ProducerRecord;
import org.opencv.core.Core;
import org.opencv.core.Mat;
import org.opencv.highgui.Highgui;
import org.opencv.highgui.VideoCapture;
import javax.xml.bind.DatatypeConverter;
/**
* Created by kexu on 16-5-23.
*/
public class StreamingClient {
private static Random rand = new Random();
public static void main(String[] args) throws Exception {
System.loadLibrary(Core.NATIVE_LIBRARY_NAME);
//System.loadLibrary("opencv_java2412");
//OpenCV.loadShared();
//OpenCV.loadLocally();
System.out.println("Start Run!");
VideoCapture camera = new VideoCapture(0);
camera.set(Highgui.CV_CAP_PROP_FRAME_WIDTH, 200);
camera.set(Highgui.CV_CAP_PROP_FRAME_HEIGHT, 200);
//For wait camera start
Thread.sleep(5000);
if (!camera.isOpened()) {
System.out.println("Camera Error!");
} else {
System.out.println("Camera OK!");
}
Properties props = new Properties();
props.put("bootstrap.servers", "127.0.0.1:9092");
props.put("acks", "all");
props.put("retries", 0);
props.put("batch.size", 16384);
props.put("linger.ms", 1);
props.put("buffer.memory", 33554432);
props.put("key.serializer", "org.apache.kafka.common.serialization.StringSerializer");
props.put("value.serializer", "org.apache.kafka.common.serialization.StringSerializer");
Producer<String, String> producer = new KafkaProducer<String, String>(props);
if(true) {
{
Thread.sleep(200);
Mat frame= new Mat();
camera.read(frame);
String matJson= matToJson(frame);
JsonObject jo=new JsonObject();
jo.addProperty("mat",matJson);
jo.addProperty("ip", "45.32.75.110");
System.out.println(matJson);
producer.send(new ProducerRecord<String, String>("test", rand.nextInt(2) + "", jo.toString()));
}
}
}
public static String matToJson(Mat mat){
//Log.d(TAG, "matToJson");
JsonObject obj = new JsonObject();
if(mat.isContinuous()){
int cols = mat.cols();
int rows = mat.rows();
int elemSize = (int) mat.elemSize();
byte[] data = new byte[cols * rows * elemSize];
mat.get(0, 0, data);
System.out.println("rows "+mat.rows());
System.out.println("cols "+mat.cols());
System.out.println("type "+mat.type());
obj.addProperty("rows", mat.rows());
System.out.println("rowsobj " + obj.toString());
obj.addProperty("cols", mat.cols());
System.out.println("colsobj" + obj.toString());
obj.addProperty("type", mat.type());
System.out.println("typeobj" + obj.toString());
// We cannot set binary data to a json object, so:
// Encoding data byte array to Base64.
String dataString = new String(DatatypeConverter.printBase64Binary(data));
//Log.d(TAG, "matToJson - dataString: "+dataString);
obj.addProperty("data", dataString);
Gson gson = new Gson();
String json = gson.toJson(obj);
// Log.d(TAG, "matToJson - json: "+json);
// System.out.println(json);
return json;
} else {
System.out.println("else");
// Log.e(TAG, "Mat not continuous.");
}
return "{}";
}
}
没有合适的资源?快使用搜索试试~ 我知道了~
温馨提示
#introduction Spark Streaming与OpenCV传感器数据实时获取:熟悉OpenCV的使用,获取本机的摄像头的图像数据,并通过SparkStreaming做实时分析 #Client client使用OpenCV抓取摄像头数据,按照一定的时间,捕捉每帧图像,将图像数据重新编码后按照JSON格式通过kafka发送到Server上 #Server Spark Streaming实时接收来自kafka的多客户端的图像数据,并对数据做以下处理:将图像数据解码后重新还原成图像,对图像调用OpenCV的人脸识别模块,标记出人脸区域,将重新构建的图像存进HBase数据库做原始数据备份,同时将图像数据传给web socket监听端口。图像处理的模块采用的是松耦合的结构 ,可以替换为其它图像处理模块。 #Display web socket服务将接受的图像数据按照client不同,分别显示在页面上
资源推荐
资源详情
资源评论
收起资源包目录
Spark Streaming与OpenCV传感器数据实时获取.zip (332个子文件)
StreamingServer$.class 5KB
StreamingServer$$anonfun$main$1$$anonfun$apply$1$$anonfun$apply$2.class 4KB
StreamingClient.class 4KB
StreamingServer$$anonfun$main$1$$anonfun$apply$1.class 2KB
StreamingServer$$anonfun$main$1$$anonfun$apply$1$$anonfun$apply$2$$anonfun$apply$3.class 2KB
StreamingServer$$anonfun$main$1.class 1KB
StreamingServer.class 1KB
test$.class 777B
test.class 613B
SUOCV-server-scala.iml 17KB
SUOCV-client-java.iml 15KB
StreamingClient.java 4KB
MANIFEST.MF 4KB
MANIFEST.MF 3KB
.name 18B
.name 17B
StreamingServer.scala 4KB
test.scala 256B
haarcascade_frontalface_alt.xml 661KB
haarcascade_frontalface_alt.xml 661KB
workspace.xml 57KB
workspace.xml 53KB
SUOCV_server_scala_jar.xml 15KB
SUOCV_client_java_jar.xml 13KB
uiDesigner.xml 9KB
uiDesigner.xml 9KB
pom.xml 5KB
pom.xml 4KB
hbase-site.xml 1KB
compiler.xml 1KB
compiler.xml 1KB
misc.xml 1KB
misc.xml 1KB
Maven__org_scala_lang_scala_library_2_10_4.xml 1KB
Maven__com_sun_jersey_jersey_test_framework_jersey_test_framework_grizzly2_1_9.xml 735B
Maven__com_sun_jersey_jersey_test_framework_jersey_test_framework_grizzly2_1_9.xml 735B
Maven__com_sun_jersey_jersey_test_framework_jersey_test_framework_core_1_9.xml 707B
Maven__com_sun_jersey_jersey_test_framework_jersey_test_framework_core_1_9.xml 707B
Maven__org_apache_hadoop_hadoop_mapreduce_client_jobclient_2_2_0.xml 694B
Maven__org_apache_hadoop_hadoop_mapreduce_client_jobclient_2_2_0.xml 694B
Maven__com_fasterxml_jackson_module_jackson_module_scala_2_10_2_4_4.xml 682B
Maven__com_fasterxml_jackson_module_jackson_module_scala_2_10_2_4_4.xml 682B
Maven__org_apache_hadoop_hadoop_mapreduce_client_shuffle_2_2_0.xml 680B
Maven__org_apache_hadoop_hadoop_mapreduce_client_shuffle_2_2_0.xml 680B
Maven__org_eclipse_jetty_orbit_javax_servlet_3_0_0_v201112011016.xml 676B
Maven__org_eclipse_jetty_orbit_javax_servlet_3_0_0_v201112011016.xml 676B
Maven__org_apache_hadoop_hadoop_mapreduce_client_common_2_2_0.xml 673B
Maven__org_apache_hadoop_hadoop_mapreduce_client_common_2_2_0.xml 673B
Maven__com_github_stephenc_findbugs_findbugs_annotations_1_3_9_1.xml 661B
Maven__org_apache_hadoop_hadoop_mapreduce_client_core_2_2_0.xml 659B
Maven__org_apache_hadoop_hadoop_mapreduce_client_core_2_2_0.xml 659B
Maven__org_apache_hadoop_hadoop_mapreduce_client_app_2_2_0.xml 652B
Maven__org_apache_hadoop_hadoop_mapreduce_client_app_2_2_0.xml 652B
Maven__org_apache_hbase_hbase_annotations_0_98_17_hadoop2.xml 648B
Maven__org_apache_spark_spark_network_shuffle_2_10_1_4_0.xml 641B
Maven__org_apache_spark_spark_streaming_kafka_2_10_1_4_1.xml 641B
Maven__org_apache_spark_spark_network_shuffle_2_10_1_4_0.xml 641B
Maven__org_apache_spark_spark_streaming_kafka_2_10_1_4_1.xml 641B
Maven__org_apache_hadoop_hadoop_yarn_server_common_2_2_0.xml 638B
Maven__org_apache_hadoop_hadoop_yarn_server_common_2_2_0.xml 638B
Maven__org_spark_project_akka_akka_remote_2_10_2_3_4_spark.xml 637B
Maven__org_spark_project_akka_akka_remote_2_10_2_3_4_spark.xml 637B
Maven__org_apache_spark_spark_network_common_2_10_1_4_0.xml 634B
Maven__org_apache_spark_spark_network_common_2_10_1_4_0.xml 634B
Maven__com_fasterxml_jackson_core_jackson_annotations_2_4_0.xml 632B
Maven__org_spark_project_protobuf_protobuf_java_2_5_0_spark.xml 632B
Maven__com_fasterxml_jackson_core_jackson_annotations_2_4_0.xml 632B
Maven__org_spark_project_protobuf_protobuf_java_2_5_0_spark.xml 632B
Maven__org_spark_project_akka_akka_slf4j_2_10_2_3_4_spark.xml 630B
Maven__org_spark_project_akka_akka_actor_2_10_2_3_4_spark.xml 630B
Maven__org_spark_project_akka_akka_slf4j_2_10_2_3_4_spark.xml 630B
Maven__org_spark_project_akka_akka_actor_2_10_2_3_4_spark.xml 630B
Maven__org_apache_hbase_hbase_protocol_0_98_17_hadoop2.xml 627B
Maven__org_glassfish_grizzly_grizzly_http_servlet_2_1_2.xml 619B
Maven__org_glassfish_grizzly_grizzly_http_servlet_2_1_2.xml 619B
Maven__commons_beanutils_commons_beanutils_core_1_8_0.xml 617B
Maven__commons_beanutils_commons_beanutils_core_1_8_0.xml 617B
Maven__org_glassfish_external_management_api_3_0_0_b012.xml 616B
Maven__org_glassfish_external_management_api_3_0_0_b012.xml 616B
Maven__org_apache_hbase_hbase_client_0_98_17_hadoop2.xml 613B
Maven__org_apache_hbase_hbase_common_0_98_17_hadoop2.xml 613B
Maven__commons_configuration_commons_configuration_1_6.xml 612B
Maven__org_glassfish_grizzly_grizzly_http_server_2_1_2.xml 612B
Maven__commons_configuration_commons_configuration_1_6.xml 612B
Maven__org_glassfish_grizzly_grizzly_http_server_2_1_2.xml 612B
Maven__com_fasterxml_jackson_core_jackson_databind_2_4_4.xml 611B
Maven__com_fasterxml_jackson_core_jackson_databind_2_4_4.xml 611B
Maven__commons_collections_commons_collections_3_2_2.xml 604B
Maven__org_glassfish_gmbal_gmbal_api_only_3_0_0_b023.xml 604B
Maven__commons_collections_commons_collections_3_2_1.xml 604B
Maven__org_glassfish_gmbal_gmbal_api_only_3_0_0_b023.xml 604B
Maven__org_codehaus_jackson_jackson_mapper_asl_1_8_8.xml 601B
Maven__org_apache_spark_spark_streaming_2_10_1_4_1.xml 599B
Maven__org_glassfish_grizzly_grizzly_framework_2_1_2.xml 598B
Maven__org_glassfish_grizzly_grizzly_framework_2_1_2.xml 598B
Maven__com_esotericsoftware_reflectasm_reflectasm_shaded_1_07.xml 596B
Maven__com_esotericsoftware_reflectasm_reflectasm_shaded_1_07.xml 596B
Maven__org_apache_spark_spark_launcher_2_10_1_4_0.xml 592B
Maven__org_apache_spark_spark_launcher_2_10_1_4_0.xml 592B
Maven__io_dropwizard_metrics_metrics_graphite_3_1_0.xml 591B
共 332 条
- 1
- 2
- 3
- 4
资源评论
博士僧小星
- 粉丝: 1698
- 资源: 5876
下载权益
C知道特权
VIP文章
课程特权
开通VIP
上传资源 快速赚钱
- 我的内容管理 展开
- 我的资源 快来上传第一个资源
- 我的收益 登录查看自己的收益
- 我的积分 登录查看自己的积分
- 我的C币 登录后查看C币余额
- 我的收藏
- 我的下载
- 下载帮助
安全验证
文档复制为VIP权益,开通VIP直接复制
信息提交成功