TemperatureDetect.zip

  • 布丁1210
    了解作者
  • QT
    开发工具
  • 7KB
    文件大小
  • zip
    文件格式
  • 0
    收藏次数
  • 1 积分
    下载积分
  • 0
    下载次数
  • 2021-03-01 17:18
    上传日期
热像仪采集数据,原始16b的数据转8b显示
TemperatureDetect.zip
  • TemperatureDetect
  • qmylabel.h
    709B
  • mainwindow.h
    877B
  • main.cpp
    183B
  • mainwindow.ui
    2.1KB
  • TemperatureDetect_zh_CN.ts
    115B
  • TemperatureDetect.pro.user
    21.9KB
  • TemperatureDetect.pro
    1.5KB
  • mainwindow.cpp
    4.5KB
  • qmylabel.cpp
    531B
内容介绍
#include "mainwindow.h" #include "ui_mainwindow.h" #include <QDateTime> #include <vector> using namespace std; Mat Image16b_pre; Mat Image8b_pre; int64 time_pre=0; float fps_pre = 0; QString SavePath = "D:\\save_temp\\"; //开始存图标志 int SaveImage_flag = -1; int SaveImage_begin = -1; int Stop_flag = -1; int Nowbuff_flag = 0; vector<Mat> image16b_buff0; vector<Mat> image8b_buff0; vector<Mat> image16b_buff1; vector<Mat> image8b_buff1; MainWindow::MainWindow(QWidget *parent) : QMainWindow(parent) , ui(new Ui::MainWindow) { ui->setupUi(this); //初始化热像仪 system = System::GetInstance(); camList = system->GetCameras(); if (camList.GetSize() > 0) { pCam = camList.GetByIndex(0); //pCam->SetUserBuffers(1024); pCam->Init(); pCam->BeginAcquisition(); } } MainWindow::~MainWindow() { pCam = nullptr; camList.Clear(); system->ReleaseInstance(); delete ui; } void MainWindow::TimerOut_Grab() { qDebug()<<"abcd"<<endl; ImagePtr pResultImage = pCam->GetNextImage(5000); const size_t width = pResultImage->GetWidth(); const size_t height = pResultImage->GetHeight(); Mat image16b(height, width, CV_16U); Mat image8b; memcpy(image16b.data, pResultImage->GetData(), height*width * 2); Rect roi(0,0,640,480); image16b(roi).copyTo(image16b); //ui->lineEdit->setText(QString::number(v, 10)); //image16b.copyTo(IMAGE); double maxV, minV; minMaxLoc(image16b, &minV, &maxV); image16b = 255 * (image16b - minV) / (maxV - minV); image16b.convertTo(image8b, CV_8U); if(!Image8b_pre.data) { image8b.copyTo(Image8b_pre); } else { Mat D = abs(Image8b_pre - image8b); imwrite("c:\\OK.bmp",D); double maxV,minV; cv::minMaxLoc(D,&minV,&maxV); if(maxV>50) { //判断上一帧是停止状态,这一帧作为保存图的起始 if(Stop_flag == 1) { if(Nowbuff_flag==0) { image16b_buff0.clear(); image8b_buff0.clear(); image16b_buff0.push_back(image16b); image8b_buff0.push_back(image8b); } if(Nowbuff_flag==1) { image16b_buff1.clear(); image8b_buff1.clear(); image16b_buff1.push_back(image16b); image8b_buff1.push_back(image8b); } Stop_flag =0; } if(Stop_flag == 0) { if(Nowbuff_flag==0) { image16b_buff0.push_back(image16b); image8b_buff0.push_back(image8b); } if(Nowbuff_flag==1) { image16b_buff1.push_back(image16b); image8b_buff1.push_back(image8b); } } } else { if(Stop_flag == 0) { } Stop_flag = 1; } image8b.copyTo(Image8b_pre); } //计算帧率 if(time_pre==0) { time_pre = cv::getTickCount(); } else { int64 time_now = cv::getTickCount(); float time_gap = (time_now - time_pre) / getTickFrequency(); float fps; if(fps_pre==0) { fps = 1.0/time_gap; fps_pre = fps; } else { fps = 1.0/time_gap; fps = (fps_pre*9+fps)/10; fps_pre = fps; } ui->label_fps->setNum(fps); time_pre = time_now; } vector<Mat> imageList; imageList.push_back(image8b); imageList.push_back(image8b); imageList.push_back(image8b); Mat imageColor; cv::merge(imageList,imageColor); QImage Img; Img = QImage((const uchar*)(imageColor.data), imageColor.cols, imageColor.rows, imageColor.cols*imageColor.channels(), QImage::Format_RGB888); ui->label->setPixmap(QPixmap::fromImage(Img)); } void MainWindow::on_pushButton_Run_clicked() { m_GrabTimer = new QTimer(this); connect(m_GrabTimer, SIGNAL(timeout()), this, SLOT(TimerOut_Grab())); m_GrabTimer->start(40); }
评论
    相关推荐
    • 视频会议系统.rar
      一套商用的视频会议程序(cool)。
    • 视频捕获-mpeg4压缩-网络传送源码(VC 6.0).rar
      视频捕获-mpeg4压缩-网络传送源码(VC 6.0).rar
    • VOIP_SRC_ALL.rar
      搞VOIP的一些原代码,包括MGCP,SIP,RTP/TRCP,SRTP(加密RTP)...等源码,参考价值无限!!这可是我所有的收藏阿,我都献给大家了:=)
    • mpeg.zip
      MPEG-2和MP3编解码
    • live.2008.01.04.tar.rar
      网络直播源代码,支持RTSP、RTP,支持的格式包括MPEG-1/2/4,MP3,H264等,功能强大,流媒体开发必须。
    • handvu-beta3.tar.gz
      结合摄像头使用,用于手部位置跟踪,精准度非常高,另可以识别六种手势。其手位跟踪模块可作为手势识别软件的一个组成部分,内含非常详细的说明文档。编译该代码,需要 OpenCV 0.97 或更高版本的支持。在Windows下的编译顺序为cubicles工程、handvu工程,之后根据视频数据来源要求编译其他代码。建议使用 Visual Studio 2003 ,如果需要编译 DirectX 相关模块,则请安装 DirectX SDK 9.0 或更高版本。
    • encore50src.zip
      mpeg4/divx编码程序,多谢qing_lee
    • 语音识别.rar
      老师布置的一个project,里面有题目和源程序,能够识别十个数字。
    • rtsp-1.0.1.tar.gz
      RTSP的实现代码,并附有RTSP、RTP、RTCP等协议的文档!
    • mpge4.rar
      一组关于流媒体、Mpeg4的技术文档,可供做流媒体的朋友参考。