| 12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667686970717273747576777879808182838485868788899091 |
- #include <QCoreApplication>
- #include <iostream>
- #include "modulecomm.h"
- #include "rawpic.pb.h"
- #include "opencv2/video.hpp"
- #include "opencv2/videoio.hpp"
- #include <opencv2/opencv.hpp>
- #include <opencv2/core.hpp>
- #ifdef SYSTEM_AGX
- #include <opencv2/imgcodecs/legacy/constants_c.h> //OpenCV4 use this line
- #include <opencv2/imgproc/types_c.h> //OpenCV4 use this line
- #endif
- cv::VideoWriter mWriter;
- bool mbSave = true;
- void encode(iv::vision::rawpic & xrawpic)
- {
- std::cout<<"jpg size : "<<xrawpic.picdata().size()<<std::endl;
- cv::Mat mat(xrawpic.height(),xrawpic.width(),xrawpic.mattype());
- if(mbSave)
- {
- if(xrawpic.type() == 1)
- memcpy(mat.data,xrawpic.picdata().data(),mat.rows*mat.cols*mat.elemSize());
- else
- {
- std::vector<unsigned char> buff(xrawpic.picdata().data(),xrawpic.picdata().data()+xrawpic.picdata().size());
- mat = cv::imdecode(buff,CV_LOAD_IMAGE_COLOR);
- }
- int font = cv::FONT_HERSHEY_DUPLEX;
- QDateTime xrecvtime = QDateTime::fromMSecsSinceEpoch(xrawpic.time());
- // char strtext[256];
- // snprintf(strtext,"%s",xrecvtime.toString("yyyy-MM-dd hh:mm:ss:zzz").toLatin1().data());
- std::string strtext = xrecvtime.toString("yyyy-MM-dd hh:mm:ss:zzz").toStdString();
- double fratio = xrawpic.width()/640;
- int fontsize = 0.5*fratio;
- if(fontsize<1)fontsize = 1;
- cv::putText(mat,strtext,cv::Point(xrawpic.width() - 230*fratio,30*fratio),font,0.5*fratio,cv::Scalar(0,255,0),fontsize);
- // cv::putText(mat,mstrvin,cv::Point(10,30*fratio),font,0.5*fratio,cv::Scalar(0,255,0),fontsize);
- }
- static int ncount = 0;
- ncount++;
- if(ncount<11)
- {
- QTime xTime;
- xTime.start();
- mWriter<<mat;
- std::cout<<"comp time :"<<xTime.elapsed()<<std::endl;
- }
- if(ncount == 11)
- {
- mWriter.release();
- }
- return;
- }
- void ListenPicData(const char * strdata,const unsigned int nSize,const unsigned int index,const QDateTime * dt,const char * strmemname)
- {
- iv::vision::rawpic xrawpic;
- if(xrawpic.ParseFromArray(strdata,nSize))
- {
- encode(xrawpic);
- }
- }
- int main(int argc, char *argv[])
- {
- QCoreApplication a(argc, argv);
- char strpath[256];
- snprintf(strpath,256,"%s/testcv.mkv",getenv("HOME"));
- mWriter.open(strpath,cv::VideoWriter::fourcc('M','P','4','2'),30.0,cv::Size(1920,1080),1);
- void * pa = iv::modulecomm::RegisterRecv("picfront",ListenPicData);
- return a.exec();
- }
|