目录

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. Unity Shader编辑器工具类ShaderUtil 常用函数和用法

    Unity Shader编辑器工具类ShaderUtil 常用函数和用法 Unity的Shader编辑器工具类ShaderUtil提供了一系列函数,用于编译.导入和管理着色器.本文将介绍ShaderU ...

  2. 《深入理解Java虚拟机》读书笔记:HotSpot虚拟机对象探秘

    基于实用优先的原则,以常用的虚拟机HotSpot和常用的内存区域Java堆为例,深入探讨HotSpot虚拟机在Java堆中对象分配.布局和访问的全过程.以下是本节内容的脑图. HotSpot虚拟机对象 ...

  3. 如何通过cookie、session鉴权(nodejs/koa)

    http是一种无状态的协议,每一个请求都是独立的,即使同一个页面向服务器发送多次请求,服务器也无法区分是不是同一用户,所以这个时候可以借助于cookie来做身份认证,当用户登录成功,服务器为浏览器设置 ...

  4. [kvm]创建虚拟机

    创建虚拟机示例 # 使用iso创建虚拟机 virt-install --virt-type kvm --os-type=linux --name temp_debian11 \ --memory 16 ...

  5. quarkus依赖注入之十一:拦截器高级特性上篇(属性设置和重复使用)

    欢迎访问我的GitHub 这里分类和汇总了欣宸的全部原创(含配套源码):https://github.com/zq2599/blog_demos 本篇概览 本篇是<quarkus依赖注入> ...

  6. React-Chat移动端聊天实例|react18 hooks仿微信App聊天界面

    基于react18+react-vant+zustand仿微信手机端聊天室ReactChat. react18-chat 一款使用最新react18.x hooks.zustand搭配react-va ...

  7. 角度新奇!第一次看到这样使用MyBatis的,看得我一愣一愣的。

    你好呀,我是歪歪. 这期给大家分享一个读者给我分享的一个关于 MyBatis 的"编程小技巧",说真的,这骚操作,直接把我看得一愣一愣的. 我更情愿叫它:坑你没商量之埋雷大法. D ...

  8. OpenLDAP服务器搭建

    一.关闭防火墙和selinux [root@localhost ~]# systemctl stop firewalld.service [root@localhost ~]# systemctl d ...

  9. WPF 在MVVM模式下应用动画

    一个简单的需求:当程序发生异常时候,在界面上动画显示异常信息. 这个需求看似简单,只需要try--catch到异常,然后把异常的信息写入界面就OK了. 但在MVVM时,就不是这么简单了.MVVM模式下 ...

  10. brpc internal

    brpc 内部实现 thread model pthread 1:1atomic cache同步降低性能 fiber n:1 -> nginx 多核难以扩展, 用户不能做阻塞操作. contex ...