目录

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. C#.NET 国密SM4对称加解密 与JAVA互通 ver:20230731

    C#.NET 国密SM4对称加解密 与JAVA互通 ver:20230731 .NET 环境:.NET6 控制台程序(.net core). JAVA 环境:JAVA8,带maven 的JAVA控制台 ...

  2. P7167 Fountain

    原题 有n个盘子组成的塔,向第i个盘子上倒水,若溢出会落到下面第一个直径大的盘子里,直到落到底部的水池为止.现给出q次询问,\((r,v)\)代表向第r个盘子里倒入体积为v的水,求水最终会停在哪个盘子 ...

  3. AVR汇编(二):AVR架构介绍

    AVR汇编(二):AVR架构介绍 ATmega328P介绍 ATmega328P是Atmel公司(现Microchip公司)推出的一个基于AVR架构的高性能低功耗单片机,拥有32KB的Flash.1K ...

  4. 【技术积累】Linux中的命令行【理论篇】【七】

    atrm命令 命令介绍 atrm命令是Linux系统中的一个命令行工具,用于取消或删除已经安排的at命令.at命令是一种用于在指定时间执行一次性任务的工具. 命令说明 atrm命令的语法如下: atr ...

  5. 【io_uring】内核源码分析(更新中)

    文章目录 `io_uring` 系统调用 `io_uring_setup` `io_uring_setup` `io_uring_create` `io_sq_offload_start` 系统调用 ...

  6. Job System 初探

    作者:i_dovelemon 日期:2023-08-24 主题:Fiber, Atomic Operation, MPMC Queue, Multiple thread, Job system 引言 ...

  7. LeetCode--1039

    Smiling & Weeping ----我总是躲在梦与季节的身处, 听花与黑夜唱尽梦魇, 唱尽繁华,唱断所有记忆的来路. 题目链接:1039. 多边形三角剖分的最低得分 - 力扣(Leet ...

  8. Codeforces Round 882 div.2 A

    Smiling&Weeping ----总有人间一两风,填我十万八千梦 A. The Man who became a God time limit per test 1 second mem ...

  9. EXE一机一码加密大师1.3.0更新

    EXE一机一码打包加密大师可以打包加密保护EXE文件,同时给EXE文件添加上一机一码认证,或者静态密码,不同的电脑打开加密后的文件需要输入不同的激活码才能正常使用,保护文件安全,方便向用户收费. 1. ...

  10. 5. 用Rust手把手编写一个Proxy(代理), 通讯协议建立, 为内网穿透做准备

    用Rust手把手编写一个Proxy(代理), 通讯协议建立, 为内网穿透做准备 项目 ++wmproxy++ gite: https://gitee.com/tickbh/wmproxy github ...