Halcon变量控制类型、数据类型转换、字符串格式化、元组操作

HALCON数据结构之字符串 阅读详情

*变量控制类型:

Halcon的基础控制类型共5种:string(字符串)、integer(整数)、real(实数/小数)、tuple(元组)、handle(句柄)

数据类型核心特性总结 :
1. 弱类型语言:Halcon无需声明变量类型,赋值即定义,自动识别类型
2. 类型兼容:整数可以自动转为实数,反之需要强制转换(tuple_real())
3. 元组万能:所有变量都是元组,元组可以嵌套元组,支持所有运算/操作

*// ===================== Halcon 五大核心数据类型  =====================
*// Halcon的基础控制类型共5种:string(字符串)、integer(整数)、real(实数/小数)、tuple(元组)、handle(句柄)


*// -------------------- 1. string 字符串类型:单引号包裹 --------------------
str := '哈工大'
address := '经开第十六大街'
str_mix := 'Halcon字符串:123abc视觉' 

*// -------------------- 2. integer 整数类型:正整数/负整数/0,无小数位 --------------------
num := 123
count := 100
sumAdd := 5050
int_neg := -99
int_zero := 0

*// -------------------- 3. real 实数/浮点型:带小数位的数值,支持科学计数法 --------------------
pai := 3.14
score := 95.5
*// 高精度小数
real_precise := 3.1415926535 
*// 科学计数法,等效 123000.0
real_science := 1.23e5       

*// -------------------- 4. handle 句柄类型:【核心】资源标识,本质是内存地址的整型映射
*// 句柄用途:标识窗口、图像、区域、XLD、文件、算子等系统资源,Halcon中最常用的是 窗口句柄/图像句柄
*// 特点:句柄是「独占资源」,使用完建议释放,避免内存泄漏;句柄变量命名规范:xxxHandle
*// 创建主窗口,返回窗口句柄WindowHandle
dev_open_window (0, 0, 800, 600, 'black', WindowHandle) 

*// -------------------- 5. tuple 元组类型:【Halcon灵魂】最核心、最常用的复合类型,重中之重
*// tuple 可以存储【所有类型】:整数、实数、字符串、句柄,支持「混合类型存储」,无类型限制
*// tuple 表示形式:必须用 [] 包裹,元素用逗号分隔;可以是空元组 [],也可以是单元素/多元素/混合元素
*// tuple 特性:Halcon中「所有变量本质都是元组」,单个数值/字符串本质是【长度为1的元组】
*// 混合类型元组(整数+实数+字符串+窗口句柄)
arr := [1,3,5,3.14,11,'abc','你好',WindowHandle] 
*// 纯整数元组
tuple_int := [10,20,30,40]                        
*// 纯字符串元组
tuple_str := ['哈工大','中国','Halcon']          
*// 长度为1的元组,等效 real类型变量
tuple_single := [99.9]                           
*// 空元组
tuple_empty := []                               

*// ===================== 数据类型核心特性总结 =====================
*// 1. 弱类型语言:Halcon无需声明变量类型,赋值即定义,自动识别类型
*// 2. 类型兼容:整数可以自动转为实数,反之需要强制转换(tuple_real())
*// 3. 元组万能:所有变量都是元组,元组可以嵌套元组,支持所有运算/操作

*数据类型转换:

*// Halcon数据类型转换
*// 把实型(real)转换成整型int)
*// 规则:int()函数为 截断取整(直接舍弃小数部分,非四舍五入)
*// 如需四舍五入用round()
real01:= 3.14
real01_2:= 3.99
int01 := int(real01)// 截断取整 → 结果:3(非4)
int01_round := round(real01_2)// 四舍五入取整 → 结果:4

*// 把整型转换成实型
int02 := 123
*// real()
real02 := real(int02)// 结果:123.0(实型)

*// 把整型(int)转换成字符串(string)
*// 可以使用字符串拼接方式
int03:= 119
str01 := int03 + ''

*// 把实型转换成字符串类型
real03 := 3.14
str02:= real03 + ''

*字符串格式化:

*// Halcon数据类型格式化
*// 字符串格式化: //--------------------- 
*// 语法:数值$'.Nf'(N为保留的小数位数,超出部分四舍五入,不足补0)   
score:=160.61
score1:=score$'.1f'//160.6
score2:=score$'.2f'//160.61

*// 整数,默认采用的是十进制形式
*// 二进制 八进制 十进制 十六进制
*// 二进制 不  支持//--------------------- 

*// 八进制://---------------------
*// 语法:数值$'0No'(N为目标长度,o表示八进制)
*// 语法:#o → 带0前缀的八进制;单纯'o' → 无前缀
*// 如果位数不够,左边补零,小于等于位数,没有变化
num02 := 8$'#o'// 十进制8→八进制10,带0前缀 → 结果:"010"
num02_2 := 8$'o'// 无前缀八进制 → 结果:"10"
num02_3 := 8$'03o'// 3位八进制,补零 → 结果:"010"
num02_4 := 10$'02o'// 十进制10→八进制12,刚好2位 → 结果:"12"

*// 十进制://---------------------
*// 语法:数值$'0Nd'(N为目标长度,d表示十进制)
*// 如果位数不够,左边补零,小于等于位数,没有变化
num:=2
num2:=20
num1:=num$'02d'//02
num3:=num2$'02d'//20

*// 十六进制://---------------------
*// 语法:数值$'0Nx'/$'0NX'(N为目标长度,x/X表示十六进制)
*// 单纯x/X → 无前缀
*// 如果位数不够,左边补零,小于等于位数,没有变化
num03 := 16$'#x'// 十进制16→十六进制10,小写前缀 → 结果:"0x10"
num03_2 := 16$'#X'// 大写前缀 → 结果:"0X10"
num03_3 := 16$'x'// 无前缀小写 → 结果:"10"
num03_4 := 16$'03x' // 3位十六进制,补零 → 结果:"010"
num03_5 := 17$'02X'// 十进制17→十六进制11,刚好2位 → 结果:"11"

*// 对于小数类型来说,#f,默认保留6位//--------------------- 
*// 如果不够6位自动补零,超出会四舍五入
f3 := 1.3$'#f'// 1.3→保留6位小数,补0 → 结果:"1.300000"
f3_2 := 1.3456789$'#f'// 超出6位,四舍五入 → 结果:"1.345679"

*// 让数字保留6位有效数字,#g,不够补零 //--------------------- 
*// 如果超出采用科学计数法
*// '1.23457e+08'= 1.23457 *10^8
f4 := 123456789$'#g'// 有效数字超6位,科学计数法 → 结果:"1.23457e+08"
f5 := 1234$'#g'// 有效数字≤6位,常规格式+补0 → 结果:"1234.00"
f5_2 := 1.23$'#g'// 有效数字3位,补0至6位 → 结果:"1.23000"

*// 数字转换成字符串后文本对齐//--------------------- 
*// 正数=右对齐,负数=左对齐
*// 位数不够,补空格,小于等于位数,没有变化
f6 := 12345$'4'// 右对齐,12345(5位)>4位 → 结果:"12345"(无变化)
f6_2 := 123$'4'// 右对齐,123(3位)<4位 → 补空格 → 结果:" 123"
f7 := 12345$'-4'// 左对齐,12345>4位 → 结果:"12345"
f7_2 := 123$'-4'// 左对齐,123<4位 → 补空格 → 结果:"123 "

*// $'.数字' 如果位数不够,左边补零,小于等于位数,没有变化//--------------------- 
f8 := 123$'.4'//0123

*元组操作:

•元组对位相加:tuple_add ()
•元组对位相减:tuple_sub()
•元组对位相除:tuple_div()
•元组对位趋于:tuple_mod ()
•插入元素:tuple_insert()
•删除元素:tuple_remove()
•替换元素:tuple_remove ()
•查找元素:tuple_find_first()
•取前 N 个元素值 :tuple_first_n ()
•取指定索引位置的元素 :tuple_select ()
•去重:tuple_uniq ()
•元祖升序排序:tuple_sort()
•元组元素随机打乱:tuple_shuffle()
•元组中的元素位置翻转:tuple_inverse()
•元组中元素的类型判断:tuple_is_int()
•判断某个元素是否指定类型:tuple_is_int_elem()
•判断元组的元素是否是数字类:tuple_is_number()
•最大值:tuple_max()
•最小值:tuple_min()
•元祖元素长度(个数):tuple_length ()
•|元祖名称|--->个数:变量名称 := |元组名称|
•平均值:tuple_mean ()
•中值:tuple_median ()
•绝对值:tuple_abs ()
•向上取整:tuple_ceil ()
•向下取整:tuple_floor ()
•合并两个元组:tuple_concat ()
•并集运算:tuple_union()
•交集运算 :tuple_intersection ()
•差集运算:tuple_difference()
•补集运算 :tuple_symmdiff ()
•清除窗口:dev_clear_window ()
•展示文本:dev_disp_text()
*// Halcon元组核心操作(增删改查+运算+特殊操作)
Tuple1 :=[1,3,5,10,20,100]
Tuple2 :=[10,20,30,40,50,60]

*// 数值运算:
*// 规则:对应索引元素相加,若长度不同,短元组末尾补0后相加
*// 元组对位相加
tuple_add (Tuple1, Tuple2, Sum)
*// 元组对位相减
tuple_sub (Tuple1, Tuple2, Sub)  
*// 元组对位相除
tuple_div (Tuple1, Tuple2, Div)  
*// 元组对位取余
tuple_mod (Tuple1, Tuple2, Mod)

*// 增:插入元素
* tuple_insert(原元组, 插入位置(索引从0开始), 插入值(单值/元组), 输出元组)
* 在指定位置(多个位置不允许)可以插入单个或者一个元祖数据
tuple_insert (Tuple1, 0, 110, Extended)//[110,1,3,5,10,20,100]
tuple_insert (Extended, 0, [11,22,33], Extended1)//[11,22,33,110,1,3,5,10,20,100]

*// 删:删除元素,删除指定位置(多个位置支持)的元素值//---------------------
* tuple_remove(原元组, 删除位置(单/多索引), 输出元组)
* 规则:多位置删除时,Halcon会自动按索引从大到小删
tuple_remove (Extended1, [0,2], Reduced)//[22,110,1,3,5,10,20,100]

*// 改:替换元素,修改指定位置(多个位置支持)的元素值//---------------------
* tuple_replace(原元组, 替换位置(单/多索引), 替换值(单/多值), 输出元组)
* 规则:替换位置数量 = 替换值数量(多值时一一对应)
tuple_replace (Reduced, [2,3,4], [19,29,39], Replaced)//[22,110,19,29,39,10,20,100]

*// 查:查找元素 如果没有找到返回-1//---------------------
Tuple3 := ['张三','李四','王五','赵六','小四','张三','赵六','张三']
* 查找张三元素第一次出现的位置 0
tuple_find_first (Tuple3, '张三', Index)
* 查找张三元素最后一次出现的位置 7
tuple_find_last (Tuple3, '张三',Index2)

*// 取前 N 个元素值 返回一个元组,参数 2 为 N(数量),代表从索引 0 开始的前 N 个元素
tuple_first_n (Tuple3, 2, Selected)//['张三','李四']
* 取指定索引位置的元素 返回一个元组,参数 2 为索引列表(单 / 多索引),仅返回对应索引的元素
tuple_select (Tuple3, [0,2,4], Selected2)//['张三','王五','小四']

*// 去重:仅去除连续的重复元素, 保留第一个//---------------------
Tuple4 := ['张三','张三','张三','张三','李四','王五','赵六','小四','张三','赵六','张三']
tuple_uniq (Tuple4, Uniq)

*// 特殊操作:排序/打乱/翻转/类型判断//---------------------
Tuple5 := [1,3,100,30,50,20,80,60,40]

*// 元祖升序排序
tuple_sort (Tuple5, Sorted)

*// 元组元素随机打乱
tuple_shuffle (Sorted, Shuffled)

*// 元组中的元素位置翻转
tuple_inverse (Shuffled, Inverted)

*// 元组中元素的类型判断 1-true 0-false
tuple_is_int (Inverted, IsInt)//1
Tuple6 := [3.14,5.67,9.5]
tuple_is_int (Tuple6, IsInt2)//0

*// 判断某个元素是否指定类型
* tuple is int/real/string/handle elem 判断元素是否为整数/小数/字符串/句柄
tuple_is_int_elem (123.0, IsInt3)//0

*// 判断元组的元素是否是数字类
tuple_is_number (Tuple4, IsNumber)

dev_get_window (WindowHandle)
*// 判断单个元素是否为句柄
tuple_is_handle_elem (WindowHandle, IsHandle)

*// 特征值获取:最值/长度/平均值/中值//---------------------
*// 最值:最大值、最小值
tuple_max (Tuple5, Max)
tuple_min (Tuple5, Min)

*// 元祖元素长度(个数)
tuple_length (Tuple5, Length)
*// |元祖名称|--->个数
length1 := |Tuple5|

*// 平均值
tuple_mean (Tuple5, Mean)
*// 中值
tuple_median (Tuple5, Median)
*// 绝对值
tuple_abs (Median, Abs)
*// 向上取整
tuple_ceil (Abs, Ceil)
*// 向下取整
tuple_floor (Ceil, Floor)

*// 查找包含有元素的本地函数//---------------------
*// find(元祖,目标值)返回是目标值在元祖的索引位置
result1 := find(Tuple5, 100)

*// sum()求和
Tuple6:=[1,2,3]
sumAdd := sum(Tuple6)

*// 元祖切片操作连续操作//---------------------
*// 定义一个元祖 值包含从1到100
Tuple7:= [1:100]// 1到100,步长1

*// 定义元祖 还可以设置步长
Tuple8 := [3:2:100]// 3到100,步长2 
Tuple9:=[100:-2:-100] // 100到-100,步长-2

*// 元祖集合运算 交并补差//---------------------
Tuple10 := [1,3,5,7,9,11,13,15]
Tuple11 := [1,2,3,4,5,7,8,9,10]

*// 元组元素拼接 合并两个元组不去重
tuple_concat (Tuple11, Tuple11, Concat)

*// 并集运算 合并去重
tuple_union (Tuple10, Tuple11, Union)

*// 交集运算 提取两个元祖中相同的元素
tuple_intersection (Tuple10, Tuple11, Intersection)

*// 差集运算 求第一个元祖中存在但是在第二个元祖中没有的元素
tuple_difference (Tuple10, Tuple11, Difference)

*// 补集运算 获取的是双方在对方当中都不存在的元素(交集的反集)
*// 对称差集 等价于 并集 - 交集
tuple_symmdiff (Tuple10, Tuple11, SymmDiff)

希望对大家有所帮助, 感谢大家的关注和点赞。

Halcon 第一章『Halcon语言』◆第2节:输入控制参数表达式(一) 在HDevelop中,赋值运算操作中必须进行赋值操作。 输入为右值,结果为左值,它是将右边的输入值存储到左边的命名当中。 而在C语言中赋值的形式是u = sin(x)+cos(y) 而在HDevelop中是形式为: HALCON Operator Reference / Control 给变量赋一个新值assign( : : Input : Result) Input:输入参数,输入一个值。 Result 阅读详情

相关推荐

halcon语法之HALCON字符串

i1 := 123KaTeX parse error: Expected 'EOF', got '#' at position 2: '#̲o' //8进制,0为前缀 …’#x’ //16进制,0x为前缀,7b为赋值 i3 := 123KaTeX parse error: Expected 'EOF', got '#' at position 2: '#̲X' //16进制,0x为前…’#f’ //double型,默认保留小数点后六位. i5 := 123KaTeX parse error: Exp

weixin_43117514的博客 4346

Halcon 小数点保留 转string and 求元素个数 合并元素

示例:tuple_string (num10, '.2f', String)'.2f'(输入控制参数2):输入保留几位小数 2f两位 3f三位…String(输出控制参数):输出保留小数字符串。num10(输入控制参数1):输入数值。2.5 小数点保留 转string。2.7 合并元素数据。

a296026640的博客 697

Halcon变量控制与数据类型转换实战指南

在机器视觉开发中,变量控制和数据类型转换是构建稳定算法的关键技术基础。Halcon作为工业级图像处理软件,其变量体系专为图像处理优化,包含输入控制、过程控制和输出控制三类变量,需要遵循特定的内存管理原则。数据类型系统涵盖图像类型、区域类型和控制类型,合理的类型转换能显著提升处理效率。通过预分配内存、向量化运算等技术,可以优化元组操作性能。这些技术在工业检测、多相机标定等场景中有广泛应用,正确处理变量和类型能有效避免内存泄漏、数据溢出等常见问题。

weixin_31714129的博客 213

halcon 数字转字符串实现循环读取图片

1.将字符转换为数字 tuple_number (StringImageIndex,IntImageIndex) 2.将数字转换为字符 tuple_string (IntImageIndex, '0', StringImageIndex) 循环读取图片 Count:=1 for Index := Count to 5 by 1 tuple_string(Index,'0',StringIndex) filename:='x\\xxx\\xxxxx\\'+StringInd...

It is me 的博客 2013

Halcon变量控制与类型转换实战指南

在工业视觉开发中,变量控制与类型转换是构建稳定系统的关键技术基础。Halcon作为机器视觉领域的标杆开发环境,其动态类型系统通过自动类型推断简化了原型开发,但也带来了类型安全挑战。理解控制变量、图标变量和句柄变量的分类体系,掌握显式/隐式转换规则,对于开发高精度视觉算法至关重要。特别是在实时图像处理、OCR识别等场景中,合理的类型转换策略能显著提升性能。通过元组操作、字符串格式化等高级特性,开发者可以高效处理相机参数配置、测量结果输出等典型工业需求。本文结合内存优化、防御性编程等工程实践,深入解析Halco

weixin_31842715的博客 103

Halcon数组与矩阵操作指南:从基础概念到实战应用

在机器视觉与图像处理领域,数据结构的高效组织是提升算法性能和代码可维护性的关键。数组作为存储同类型数据的集合,是批量处理图像特征、坐标和参数的基础容器;而矩阵作为二维数值结构,则是实现几何变换、相机标定和线性代数运算的核心工具。理解数组与矩阵的原理,能够显著优化视觉项目的开发流程,尤其在多模板匹配、动态ROI生成和坐标变换等场景中,它们能有效替代冗余的单对象操作,提升代码的灵活性和执行效率。本文聚焦Halcon中的数组(元组)与矩阵操作,通过典型应用场景如批量创建ROI区域、利用矩阵进行坐标变换等,深入解析

weixin_30522183的博客 408

halcon字符串数组转字符串

str:=''endfor。

Kx_Lxy2017的博客 1041

halcon中面到面的距离_HALCON基础知识

HALCON1.语法范式SyntaxStyle1.1.基本格式1.1.1.算子格式算子(输入图像参数:输出图像参数:输入控制参数:输出控制参数)其中四个参数任意一个可以为空**threshold算子,1ImageParainput:Image;2ImageParaoutput:Region;**3ControlParainput:MinGray,MaxGray4...

weixin_39968490的博客 498

掌握HDevelop变量与元组操作:解决数据转换和下标报错的实用指南

在机器视觉与Halcon开发中,HDevelop脚本的可靠性直接影响项目调试效率。很多开发者对控制变量与图变量的本质区别、动态类型推断机制、以及赋值符号“:=”与“=”的混用陷阱缺乏系统认知,导致运行时错误频发。掌握数据类型的转换原理,如int截断、四舍五入及字符串与数字互操作,是规避精度损失和解析失败的关键。同时,字符串格式化与元组操作作为批量图像处理和结果汇总的基础能力,能够高效解决命名排序、批量采集、缺陷统计和报告生成等工程场景中百分之八十的常见问题。本文从变量设计原理出发,结合实际踩坑经验,为视觉开

weixin_29214199的博客 187

HDevelop核心算子速查与C#移植实战:从脚本到工程落地

机器视觉项目中,算法验证与工程落地是两个不同阶段。HDevelop作为HALCON的交互式开发环境,为开发者提供了拖拽式算子调试体验;而C#则是工业上位机的主要实现语言。理解两者之间的数据类型映射与算子调用规律,是打通视觉项目从原型验证到产品交付的关键。HObject、HTuple、HImage等核心类型承载了图像、区域与控制参数的传递,掌握Threshold、Connection、SelectShape等常用算子,能够快速构建阈值分割、连通域分析等基础流程,进而结合模板匹配与卡尺测量实现定位和尺寸检测。本

weixin_33937913的博客 297

Halcon 数组操作(Tuple)详解与算子说明

本文详解Halcon 17.12中Tuple(数组)操作的121个官方算子,涵盖创建、修改、选择、排序、集合运算、统计、算术与逻辑等13类功能。Tuple作为核心控制数据容器,支持整数、浮点、字符串混合存储,索引从0开始,广泛用于检测结果、坐标序列、参数传递等场景。重点强调内联表达式优先使用,二元算子遵循广播规则(长度为1时自动扩展),多实例结果需同步筛选以避免错位。结合文件处理、拟合输出、模板匹配等典型流程,系统梳理了从数据采集到判定报表的完整工作链,提供工程化编码规范与常见陷阱规避策略。

weixin_45590420的博客 9

Halcon数据处理基本功:变量类型转换、字符串格式化与元组操作详解

在机器视觉项目开发中,图像算法之外的控变量处理往往是效率瓶颈。理解Halcon的变量控制类型、数据转换逻辑和HTuple元组机制,是构建稳定视觉系统的地基。Halcon将整数、浮点、字符串统一在元组体系中,灵活性与风险并存,正确区分图形变量与控变量、合理使用int()与round()、规范格式化输出,能显著降低调试成本。无论是相机参数读取、坐标转换、日志记录,还是批量结果排序与统计分析,这些基础能力直接决定工程代码的健壮性。掌握这些数据处理技巧,不仅让HDevelop原型更可靠,也为后续C#/C++平台集成

weixin_26968079的博客 197

机器视觉3-halcon教程

• RGB/CMYK:分别用于屏幕显示与印刷,需注意转换色差。• LAB:广色域编辑工具,适合专业后期。• HSB:调色辅助模型,非存储格式。• 色域管理:确保颜色从采集(相机)、处理(软件)到输出(印刷/屏幕)的一致性。

qq_41810539的博客 1054

Halcon编程指南:符号与元组操作详解

文章系统介绍了Halcon编程中的核心语法与图像处理技术,主要内容包括:1.基础语法(赋值、比较、流程控制);2.Tuple元组操作(定义、索引、集合运算);3.图像处理核心概念(Image结构、Region区域特征、XLD亚像素轮廓);4.关键算子应用(图像读取/转换、阈值分割、轮廓提取)。特别详细说明了图像窗口控制、数据类型转换格式化和多通道图像处理方法,为机器视觉开发提供了完整的语法参考和技术实现方案。(150字)

过客 780

别再折腾环境了!Windows 11 + VSCode + CMake 3.31.4 + MinGW-w64 一键式配置指南(附常见报错解决)

本文提供Windows 11下VSCode、CMake 3.31.4和MinGW-w64的一键式配置指南,帮助开发者快速搭建高效C++开发环境。涵盖工具链选型、环境变量配置、项目初始化及常见报错解决方案,大幅提升开发效率。

weixin_28841265的博客 187

vmware虚拟机网络连接问题

主机:ubuntu14.04 Vitual Network Editor

入门虽易,精通不易,且学且珍惜! 1354

Halcon变量处理全解析:从类型转换到元组操作实战

机器视觉项目开发中,Halcon脚本的变量处理是绕不开的基础能力。理解图标变量与控制变量的本质区别,掌握整数、浮点数、字符串及元组之间的类型转换规则,是稳定实现定位、测量、识别与缺陷检测的关键。HDevelop作为Halcon的集成开发环境,提供了一套高效处理批量数据的元组算子,能让开发者避免逐条循环、提升脚本运行效率。在实际工程中,无论是读取灰度值、拼接保存路径,还是对测量结果做标准差与超限筛选,都需要熟练运用tuple_int、tuple_string、tuple_split及$格式化等工具。本文从变量

weixin_28742653的博客 166

飞思卡尔16位单片机(二)——CodeWarrior开发环境搭建及新建、调试工程

一、安装CodeWarrior 飞思卡尔16位单片机的开发环境为CodeWarrior5.1,这个软件安装比较简单,软件的安装文件可以从相应的网站上下载。安装CodeWarrior所需要的电脑的硬件资源也比较宽泛,目前一般的电脑都可以满足这个要求,可以支持win10、win7等操作系统。安装过程按照按照软件的提示一步步操作即可。 二、安装USBDM驱动 USBDM是...

bigmarshal的博客 1万+

HALCON基础知识

1. 语法范式 Syntax Style  1.1. 基本格式 1.1.1. 算子格式 算子(输入图像参数:输出图像参数:输入控制参数:输出控制参数) 其中四个参数任意一个可以为空 e.g.1.threshold(Image : Region : MinGray, MaxGray : )  ** threshold算子,1 Image Para input : Image ; 2 Im

让我们的机器来代替人的眼睛专栏 4436

开放平台 - 互动玩法演进之路

随着直播业务和用户规模日益壮大,如何丰富直播间内容、增强直播间内用户互动效果,提升营收数据变得更加关键。

bilibili_TC的博客 1740

从镜头到像素:深入解析Camera、Sensor与V4L2的协同工作流

本文深入解析了摄像头从物理成像到软件控制的完整工作流。详细介绍了镜头、传感器(Sensor)与V4L2框架的协同机制,涵盖光电转换、同步信号、ISP图像处理等核心环节,并通过实战演示了如何使用v4l2-ctl工具进行调试,为嵌入式开发和驱动调试提供系统指南。

weixin_29230805的博客 389

HALCON字符串操作避坑指南:那些官方文档没告诉你的细节

本文深入探讨了HALCON字符串操作中官方文档未提及的关键细节与性能陷阱。针对工业视觉开发中的常见场景,详细分析了字符串格式化、搜索分割、正则表达式以及元组协同操作中的内存管理、算法效率与边界情况,旨在帮助中高级开发者编写出更高效、健壮的代码,规避项目中的潜在风险。

pp12345的博客 416

【信息系统项目管理师】第18章:项目绩效域详解

(3)度量绩效域与规划绩效域、项目工作绩效域和交付绩效域的相互作用:1规划构成了 交付和规划比较的基础;项目绩效域共同构成了一个统一的整体,作为一个完整系统,在项目生命周期过程中运行,系统内的每个绩效域相互作用、相互关联和相互依赖,并协调一致、共同运作,支撑项目目标和价值 的实现。(5)开发方法和生命周期绩效域与其他绩效域的相互作用:开发方法和生命周期绩效域与干系人绩效域、规划绩效域、不确定性绩效域、交付绩效域、项目工作绩效域和团队绩效域相互作用。(2)项目工作绩效域的绩效要点包括:项目过程;

数据知道的博客 7806

Halcon中数据的四舍五入、取整、有效数字以及和字符串之间的转换

a:= 3.456 *取整、取最近的整数 int_a := int(a) //取整数部分,结果是3 round_a := round(a) //将输入元组转换为最接近的整数元组,结果是3 *四舍五入,结果是字符串 g0 := a$'.0f' //保留0位,结果是'3' g1 := a$'.1f' //保留1位,结果是'3.5' g2 := a$'.2f' //保留2位,结果...

cuhinzozfi的博客 1万+

基于STM32F1XX 、HAL库的LTR-303ALS-01 环境光传感器驱动应用C语言程序设计

printf("制造商ID: 0x%02X\r\n", LTR303_ReadManufacID());printf("器件ID: 0x%02X\r\n", LTR303_ReadPartID());LTR-303ALS-01是一款数字环境光传感器(ALS),由Lite-On公司生产。printf("LTR-303ALS初始化失败!printf("LTR-303ALS初始化成功!printf("数据无效\r\n");* @param mode: 0-待机, 1-激活。

PP_Cottage的博客 1033

基于STM32的智能鞋柜系统设计与实现

摘要:本文设计并实现了一种基于STM32F103C8T6单片机的智能鞋柜系统。该系统通过DHT11温湿度传感器、PM2.5粉尘传感器和MQ-135空气质量传感器构建多维度环境监测网络,结合光电红外传感器和光敏传感器实现柜门状态识别与智能照明。系统采用分层控制策略,当温度低于15℃或湿度高于65%时自动启动加热和通风,PM2.5超标时启动通风,污染物浓度升高时激活紫外线杀菌。创新性地实现了柜门状态与紫外线消毒的双保险互锁机制,确保使用安全。测试结果表明,系统温湿度控制精度达±0.4℃/±2.0%RH,PM2.

3254968421的博客 253
上一篇: Halcon控制语句
下一篇: Halcon图像锐化和图像增强、窗口的相关算子
MM_MS
博客等级 码龄1年 58粉丝 100原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

MM_MS

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值