// // Created by Scheaven on 2019/11/18. // #include "src/h_interface.h" #include "src/std_target.h" #include // C++ #include "src/utils/draw_util.h" using namespace std; using namespace cv; void* handle; bool do_frame(Mat frame, TImage *img, void *sr, void* handle, int cam_id) { if(!frame.empty()) { img->width = frame.cols; img->height = frame.rows; img->channel = frame.channels(); img->data = frame.data; const char * img_time = fa_getSysTime(); const char* mode = "video"; // printf("===%s\n",img_time); std::cout<< "===%s:" << img_time << std::endl; sr = get_result2(handle, img, cam_id, img_time, mode); TResult * t_result = (TResult*) sr; cout << "=======t_result->count==" << t_result->count << endl; for (int i=0; icount; i++) { //cv::putText(frame,t_result->targets[i].attribute,cv::Point(t_result->targets[i].rect.left,t_result->targets[i].rect.top),1,1,cv::Scalar(0,255,255),2,8,0); cv::putText(frame,to_string(t_result->targets[i].confidence),cv::Point(t_result->targets[i].rect.left,t_result->targets[i].rect.top),1,1,cv::Scalar(0,255,255),2,8,0); cv::rectangle(frame,cv::Point(t_result->targets[i].rect.left,t_result->targets[i].rect.top),cv::Point(t_result->targets[i].rect.right,t_result->targets[i].rect.bottom),Scalar(255,0,0),1,1,0); cout << "====1111111111===confidence:" << t_result->targets[i].confidence << endl; cout << "====1111111111===attri:" << t_result->targets[i].attribute << endl; cout << "====1111111111===id:" << t_result->targets[i].id << endl; } cv::imshow("result",frame); cv::waitKey(30); return true; }else{ cout << "-----------------------over--" << endl; release(handle); release_result(sr); return false; } } int main(int argc, char *argv[]) { // //视频流信息 VideoCapture cap; VideoCapture cap2; int cam_id = 0; int cam_id2 = 1; Mat frame, blob; Mat frame2, blob2; const char *conf = "../config.json"; int *max_chan; int x = 5; max_chan=&x; handle = create(conf, max_chan); void *sr; void *sr2; TImage *img = new TImage(); TImage *img2 = new TImage(); int i = 0; cap = VideoCapture("rtsp://admin:a1234567@192.168.5.152:554/h264/ch1/main/av_stream"); while(1){ /* code */ cap >> frame; if(!frame.empty()) { // std::clock_t t_strat2 = std::clock(); if(!do_frame(frame, img, sr, handle, i)) return 0; cout << "-------------" << endl; }else{ cout << "------------over--" << endl; release(handle); release_result(sr); break; } } return 0; }