Halcon 与 C++ 的类型转换

AI权益加码!Claude Code、Cursor等20+工具免费用! 购周边限时加赠Coding Plan Lite,畅享主流AI工具!学习进阶更高效! 阅读详情

Halcon 与 C++ 的类型转换


1.   从Halcon到VC++

      read_image(&Image,"文件名");//读入的为灰度图像

      //获取图像指针,注意输出变量的类型

char lpcsType[MAX_STRING];

Hlong Pointer,Width, Height;

get_image_pointer1(Image, &Pointer, lpcsType, &Width, &Height);

//Halcon与VC++中的图像之间,存在着上下翻转

BYTE * lpByte;

BYTE * ImageG;

int bytewidth;

bytewidth = ((long) Width * 3 + 3 ) / 4 * 4 ;

ImageG = NULL ;

ImageG = new BYTE[ bytewidth * (long) Height ];

lpByte = (BYTE *) Pointer;       //注意结合图像像素存储的类型进行定义

int i,j;

for( j = (long)Height-1; j>=0; j--)

{            //(注意tuple中图像数据的存放和VC中的差别)

              for( i = 0; i < (long)WidthGray; i++)

              {

                     * (ImageG + j * bytewidth + i * 3 + 0 ) = * lpByte ;

                     * (ImageG + j * bytewidth + i * 3 + 1 ) = * lpByte ;

                     * (ImageG + j * bytewidth + i * 3 + 2 ) = * lpByte ;

                     lpByte++;

              }

}

BITMAPINFO * RotateBmpInfo;

BYTE * bitBuffer;

bitBuffer = NULL;

bitBuffer = new BYTE[sizeof(BITMAPINFO)];

RotateBmpInfo = (BITMAPINFO *)bitBuffer;

RotateBmpInfo->bmiHeader.biSize = sizeof(BITMAPINFOHEADER);

RotateBmpInfo->bmiHeader.biHeight &nbs

HalconHALCON/C++ 接口的基础知识 HALCON/C++ 接口的基础知识前言1、 The Namespace HalconCpp2、 调用 HALCON 运算符2.1 仔细观察参数2.2 通过类调用运算符2.3 构造函数和 Halcon 运算符2.4 析构函数和 Halcon 运算符2.5 元组模式3、 Error Handling4 、内存管理5 、如何结合面向过程和面向对象的代码6、 I/O Streams7、 Windows API 冲突 前言 HALCON/C++ 接口提供了两种不同的方法来在 C++ 程序中使用 HALCON 的. 阅读详情

相关推荐

Halcon之使用 HALCON/C++ 编程

Halcon之使用 HALCON/C++ 编程Introducing HALCON/C++一、1、A First Example二、使用步骤1.头文件2.结果总结 Introducing HALCON/C++ HALCON/C++HALCON C++ 编程语言的接口。 HALCON 库一起,它允许在 C++ 程序中使用 HALCON 的图像处理能力。 一、1、A First Example Figure 4.1: The left side shows the input im..

weixin_43488529的博客 7828

halcon基础知识

在算子编辑窗口,main所在行右边,有四个按钮,将鼠标移到该位置,将有中文提示,按提示点击按钮。浅蓝色:外部函数——HDevelop函数文件,可在所有Halcon程序中使用。Halcon自带的训练集数据是亮色背景上的暗色文字。紫色:内部函数——本地程序函数,只在当前程序使用。2.减法:常用于检测两幅或多幅图之间的变化。4.除法:矫正成像设备的非线性影响。1.加法:降低图像中的随机噪声。3.乘法:遮住图像的指定部分。深蓝色:图像获取和处理。

Z's Palace 6903

HalconQt联合编程方法二(C++版本)

上一篇文章中提到基于python实现HalconQt联合编程,但是在实际开发中,比如说已经有了qt编写的c++版软件进行算法迭代,或者已经有了halcon编写的(.hdev文件)算法,想进行软件封装,这时候可以考虑把halcon编写的.hdev文件化成.cpp文件,然后基于qt实现联合编程。#-----------------------添加进.pro工程文件-----------------#-----------------------QThalcon联合编程配置-------------

qq_43207709的博客 6445

C++/C#调用halcon引擎文件,QT为例

主要用得到的类HDevEngine类是管理全局设置。如设置或获取全局变量的值、设置脚本路径、启动停止调试模式等。HDevProgram类加载.hdev格式文件以及获取文件内部参数一般信息。HDevProgramCall类执行.hdev文件格式脚本,并获取变量的值。HDevProcedure类加载.hdvp格式外部函数以及内部函数。HDevProcedureCall类执行.hdvp外部函数和内部函数。并且可以设置或获取外部函数、内部函数参数。...

qq_41100111的博客 5949

HalconC++图像数据结构

参考地址:http://tsindahui.blog.sohu.com/151668003.html 1. 从HalconVC++ read_image(&Image,"文件名");//读入的为灰度图像 //获取图像指针,注意输出变量的类型 char lpcsType[MAX_STRING]; Hlong Pointer,Width, Height;...

weixin_30823833的博客 1250

HalconOpenCV图像类型转换基于C++ (附代码)

视觉图像处理中使用最广泛的两个视觉库一个是开源的OpenCV,另一个是收费的Halcon,它们各有各的优势,这里不做对比评价。 在使用中我们有时候需要将Halcon和OpenCV中图像类型做换,所以这里为一些新手朋友们整理一下,使用的时候可以直接复制调用。对于8位图像:包括三通道彩色图像和单通道灰度图像均适用。 (1)HalconHObject -> OpenCV Mat Mat HImageToMat(HObject &imgHalcon) { HTupl...

Color Space的博客 2177

halcon变量,图像C++的一些换(未完待续)

1、将HTuple化为C++的类型 将Local control variables(HTuple类型)化为C++基本类型,其中I()代表int类型,L()代表化为long类型,Num()代表返回数据个数,D()代表化为double类型,S()代表换为string类型。 HTuple hTuple = 1234;   int i = hTuple[0].I(); // i=123...

wwwsssZheRen的博客 5603

C++ Halcon应用之查找图像上圆形区域的中心点半径

在上面的算法实现中主要有两个接口,一个是getCirCleRegionInfo用于圆形区域的查找和信息换,另一个接口是MatToHObject该接口主要是将opencv的图像类型转换Halcon库可以使用的图像类型。std::cerr << "Halcon错误: " << ex.ErrorMessage().Text() << std::endl;std::cerr << "不支持的通道数: " << mat.channels() << std::endl;//9、圆形区域信息换。

weixin_52921501的博客 632

qt窗口中显示halcon的图像

先上图片和代码void PreTreat::on_OpenImageButton_clicked() { QString fileName = QFileDialog::getOpenFileName(this,tr("open image file"), "./", tr("Image files(*.jpg *.png);;All files (*.*)")); ...

github_34965845的博客 1万+

关于Halcon C++常用的两种数据结构Hobject和HTuple

HALCON里面有很多数据类型,但是通过的导出向导工具导出后,就剩下两种数据类型:Hobject HTuple。一个是图像一个是数据。 头文件有定义这两个C++类: C:\Program Files\MVTec\HALCON-18.11-Progress\include\halconcpp\HObject.h C:\Program Files\MVTec\HALCON-18.11-Progress\include\halconcpp\HTuple.h HObject // Represe...

$firecat利白的代码足迹$ 8228

Halcon C++开发必知:Hobject和HTuple的5个实战技巧(附代码示例)

本文深入探讨Halcon C++开发中Hobject和HTuple的5个实战技巧,包括高效处理图像对象数组、智能类型转换、零拷贝数据交互等,帮助开发者提升代码质量和执行效率。附有详细代码示例,特别适合工业视觉领域的开发者参考。

weixin_29195217的博客 168

Halcon和C#的数据类型互:string、doubleHTuple

c#中数据格式图像数据的互相

weixin_44674444的博客 3081

菜鸟进击过程中忽略的知识点

编程实践中经常会忽略一些比较小的知识点,归根究底还是基础不够扎实,因此把这些零散的内容总结一下来夯实基础(知识改变命运,为了大电视、大沙发、大卫生间) HalconC++联合编程时,利用输出流输出Halcon类型的变量,此时需要进行强制类型转换 若函数的返回类型为byte(取值范围0-255),当返回值为-1时,返回255 rhs(right hand side)右值 vs默认编译器是CL.exe

贾路飞的博客 308

C#环境下通过Dll传递数据给C++处理

【代码】Halcon在C#环境下通过Dll传递给C++处理。

qq_49595983的博客 295

封装DLL避免第三方依赖的五大核心方法

目录一、方法代码示例1. 接口抽象PIMPL模式2. 类型转换适配层3. 动态库加载隔离4. 二进制接口控制5. 资源封装规范二、Halcon+OpenCV工业检测DLL完整实现(C++17)1.项目结构2.核心实现代码2.1 接口定义(跨平台标准)2.2 Halcon2.3 OPenCV三、调用示例代码四、部署注意事项

T 634

Halcon C++ 封装 Python 调用包:PyBind11 实现工业视觉应用

在工业视觉机器视觉领域,C++ 库的 Python 封装是连接高性能底层算法高效上层应用开发的关键技术。其核心原理在于通过特定的绑定工具(如 PyBind11),建立 C++ 对象 Python 对象之间的类型映射内存管理桥梁,实现跨语言的无缝调用。这项技术的价值在于能够将诸如 Halcon 这类功能强大但接口封闭的专有库,无缝融入以 Python 为主导的现代数据科学生态(NumPy、OpenCV、PyTorch 等),从而解决算法开发系统集成中的工作流割裂痛点。通过构建 Pythonic 的

weixin_33696106的博客 408

HalconC++之间的数据

HALCONHTuple类型(元组)功能很强大,可以表示INT、double、string等多种类型数据。当元组中只有一个成员时,HTuple也可表示原子类型。

qq_43287931的博客 1250

不能将参数 1 从“HalconCpp::HTuple换为“CFont *“ 问题的解决

halcon导出了一个一维码的C++程序,导入到VS2010的时候出现下面问题: 1>OCR_ReceipDlg.cpp(469): error C2664: “CWnd::SetFont”: 不能将参数 1 从“HalconCpp::HTuple换为“CFont *” 1>          没有可用于执行该换的用户定义的换运算符,或者无法调用该运算符 1>OCR_Recei

DaLaoZi的专栏 2480
沙漠中的一条鱼
博客等级 码龄12年 4粉丝 1原创
评论 1
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值