目录

1、开发准备

2、导入头文件

3、数据初始化

4、获取红外图像

5、关闭红外图像

6、完整代码


1、开发准备

为了方便发开,需要下载Visual Studio,本开发基于Visual Studio 2022,使用C++。

通过Visual Studio创建好项目后,将DMSDK V1.16.3内所有文件复制到创建好的项目文件内。

2、导入头文件

通过Visual Studio在源文件处创建C++文件,用来开发,如下图所示。

在C++文件内包含所需要使用的头文件。

#include <iostream>
#include <windows.h>
#include <conio.h> // 用于读取键盘输入
#include "DMSDK.h"
#pragma comment(lib, "DMSDK.lib")

3、数据初始化

我们要获取仪器的红外图像不能单纯直接靠DM_OpenMonitor获取,需要先创建一个图像窗口,然后通过DM_OpenMonitor将图像映射到图像窗口上。注意!!!这里的端口和连接仪器的端口不一样,这里是5000!!!

//创建图像窗口
HWND videoWindow = CreateWindow(L"STATIC", L"红外图像", WS_OVERLAPPEDWINDOW,
CW_USEDEFAULT, CW_USEDEFAULT, 320 * 2, 240 * 2,
NULL, NULL, NULL, NULL); DM_Init();
DM_PlayerInit(videoWindow); // 显示窗口
ShowWindow(videoWindow, true);
//数据初始化
char ipAddress[] = "192.168.1.2"; // 替换为实际的仪器IP地址
unsigned short port = 5000; // 替换为实际的端口
int channel = 0; // 替换为实际的通道号

4、获取红外图像

现在通过DM_OpenMonitor将图像映射到图像窗口上,并判断是否映射成功。

int handle = DM_OpenMonitor(videoWindow, ipAddress, port, channel);

if (handle >= 0) {
std::cout << "视频监控打开成功,连接句柄:" << handle << std::endl;
//等待按下Esc键
std::cout << "按下Esc键关闭视频监控..." << std::endl;
while (!_kbhit() || _getch() != 27) { // 按下的键不是Esc键,则继续等待
// 在此处可以执行其他操作 }
}
else {
std::cout << "视频监控打开失败" << std::endl;
}

5、关闭红外图像

不需要红外图像后,需要先关闭视频监控,再清除资源内存。

// 关闭视频监控
int closeResult = DM_CloseMonitor(handle);
if (closeResult >= 0) {
std::cout << "视频监控关闭成功" << std::endl; // 清除资源
int cleanupResult = DM_PlayerCleanup();
if (cleanupResult > 0) {
std::cout << "资源清除成功" << std::endl;
}
else {
std::cout << "资源清除失败" << std::endl;
}
}
else {
std::cout << "视频监控关闭失败" << std::endl;
}

6、完整代码

#include <iostream>
#include <windows.h>
#include <conio.h> // 用于读取键盘输入
#include "DMSDK.h"
#pragma comment(lib, "DMSDK.lib") int main() { // 初始化DMSDK
HWND videoWindow = CreateWindow(L"STATIC", L"红外图像", WS_OVERLAPPEDWINDOW,
CW_USEDEFAULT, CW_USEDEFAULT, 320 * 2, 240 * 2,
NULL, NULL, NULL, NULL); DM_Init();
DM_PlayerInit(videoWindow); // 显示视频
ShowWindow(videoWindow, true);
//UpdateWindow(videoWindow); // 打开视频监控
char ipAddress[] = "192.168.1.2"; // 替换为实际的仪器IP地址
unsigned short port = 5000; // 替换为实际的端口
int channel = 0; // 替换为实际的通道号
int handle = DM_OpenMonitor(videoWindow, ipAddress, port, channel); if (handle >= 0) {
std::cout << "视频监控打开成功,连接句柄:" << handle << std::endl;
//等待按下Esc键
std::cout << "按下Esc键关闭视频监控..." << std::endl;
while (!_kbhit() || _getch() != 27) { // 按下的键不是Esc键,则继续等待
// 在此处可以执行其他操作 }
}
else {
std::cout << "视频监控打开失败" << std::endl;
}
// 关闭视频监控
int closeResult = DM_CloseMonitor(handle);
if (closeResult >= 0) {
std::cout << "视频监控关闭成功" << std::endl; // 清除资源
int cleanupResult = DM_PlayerCleanup();
if (cleanupResult > 0) {
std::cout << "资源清除成功" << std::endl;
}
else {
std::cout << "资源清除失败" << std::endl;
}
}
else {
std::cout << "视频监控关闭失败" << std::endl;
}
return 0;
}

大立科技DM63红外相机SDK开发Ⅱ-获取仪器红外图像的更多相关文章

  1. DALSA网口线扫相机SDK开发详解例程(C#版)

    首先吐槽一句,官方的demos写的真的不好,坑爹啊.对于小白来说,开发官方demos为我所用太难了.为什么呢?因为它Dalsa的DALSA.SaperaLT.SapClassBasic.dll中,不仅 ...

  2. Dalsa线扫相机SDK开发-小试牛刀(1)

    拿到了dalsa相机,可以用Sapera软件配置相机,进行图像采集.但是自己开发的话就得撸起袖子写代码了,查了两篇不错的博文,作为指导. Sapera帮助文档 - <好好先生>专栏 - 博 ...

  3. Kinect for Windows SDK开发入门(15):进阶指引 下

    Kinect for Windows SDK开发入门(十五):进阶指引 下 上一篇文章介绍了Kinect for Windows SDK进阶开发需要了解的一些内容,包括影像处理Coding4Fun K ...

  4. Kinect for Windows SDK开发入门(二):基础知识 上

    原文来自:http://www.cnblogs.com/yangecnu/archive/2012/03/31/KinectSDK_Application_Fundamentals_Part1.htm ...

  5. Kinect for Windows SDK开发入门(一):开发环境配置

    [译]Kinect for Windows SDK开发入门(一):开发环境配置 前几天无意中看到微软发布了Kinect for windows sensor,进去看了一下Kinect应用的例子,发现K ...

  6. 海康抓拍机SDK开发

    前言 项目采购的海康威视的抓拍机,需要首先获取抓拍图片,之后基于抓拍图片进行图像处理.本文基于海康SDK开发文档,按照开发步骤,咨询海康技术人员,现将开发过程记录如下. 主要过程的c++代码: /** ...

  7. 高拍仪拍照SDK开发(良田影像S300L|S500L)

    高拍仪拍照SDK开发下载地址:点击下载 本SDK适用于:良田影像S300L|S500L 高拍仪如图: SDN开发包安装之后找到安装目录,如图: 大家找到各自需要的版本即可,需要注意的是如果需要上传图片 ...

  8. Vmware Vsphere WebService SDK开发(第一讲)-基本知识学习

    刚开始这方面开发的时候,不知道如何下手,能够查到的资料特别少,而且看到很多网友和我一样也在找这方面的资料.接下来的一段时间我就结合自己所参与的项目,完成关于Vmware Vsphere WebServ ...

  9. Android支付宝SDK开发笔记

    一.准备工作 〉1.下载开发包 https://b.alipay.com/order/productDetail.htm?productId=2014110308141993&tabId=4# ...

  10. 如何使用Add-on SDK开发一个自己的火狐扩展

    黄聪:如何使用Add-on SDK开发一个自己的火狐扩展 火狐开放了扩展的开发权限给程序员们,相信很多人都会希望自己做一些扩展来方便一些使用. 我最近做一些项目也需要开发一个火狐扩展,方便收集自己需要 ...

随机推荐

  1. QPushButton按钮的使用

    1 import sys 2 from PyQt5.QtCore import * 3 from PyQt5.QtGui import * 4 from PyQt5.QtWidgets import ...

  2. pyqt5中的布局方法

    addLayout():用于在布局中插入子布局 addWidget():用于在布局中插入控件

  3. Linux系统启动jmeter可视化界面

    目的:方便在Linux系统调试jmeter脚本.操作:Linux启动jmeter可视化界面,不能使用root用户,需要创建新用户,切换到新用户启动jmeter. 1. 创建用户 创建一个新的系统用户. ...

  4. Azure Data Factory(六)数据集类型为Dataverse的Link测试

    一,引言 之前有讲过 Azure Data Factory 的 Copy Data 的操作,演示了将 Blob Storage1 的数据通过 Azure Data Factory 复制到 Blob S ...

  5. Java 设计模式实战系列—单例模式

    本文首发公众号:小码A梦 单例模式是设计模式中最简单一个设计模式,该模式属于创建型模式,它提供了一种创建实例的最佳方式. 单例模式的定义也比较简单:一个类只能允许创建一个对象或者实例,那么这个类就是单 ...

  6. iOS越狱后必装软件

    iOS越狱后就跟ubuntu没两样了,很多ubuntu下常用的软件都要装一下 openssh 这个软件可以让我们能够登录iphone Apt-get 用这个软件可以安装很多软件,主要是一些工具调试类软 ...

  7. 从Google开发者大会浅谈LLM的应用

    这周参加了在上海世博中心举办Google I/O Connect中国开发者大会,有几年没参加这么高质量的活动,有点感慨. 期间重点听了关于GCP和Google AI大语言模型的主题演讲,发现目前各大厂 ...

  8. c++中的数论知识

    写在开头:word的公式打不上来,只能截图了 一.组合数学 (1) 加法定理与乘法原理 加法原理:做一件事情,完成它可以有n类办法,在第一类办法中有m1种不同的方法,在第二类办法中有m2种不同的方法, ...

  9. WPF动画入门教程

    Windows Presentation Foundation (WPF)是一种用于创建Windows客户端应用程序的UI框架.它让我们能够创建丰富的图形界面,包括各种各样的动画效果.接下来,我们将介 ...

  10. 「luogu - P3158」「cqoi 2011」放棋子

    link. 解读一下,大概就是一种颜色放进去就会占据一行一列,dp 状态就好想了:\(f_{i,j,k}\) 表示恰好用完前 \(k\) 种颜色的所有棋子,占据了 \(i\) 行 \(j\) 列的方案 ...