Halcon光度立体视觉在皮革表面缺陷检测中的原理与应用
1. 项目概述深入解析Halcon皮革检测中的光度立体视觉模块最近在翻看Halcon的官方例程库特别是那个经典的explore_halcon.hdev文件里面藏着不少工业视觉的“宝藏函数”。今天想重点聊聊其中的第19个例子也就是p_do_inspect_leather_photometric_stereo这个函数模块。如果你正在做皮革、布料、薄膜这类表面纹理复杂、缺陷微弱的检测项目这个模块绝对值得你花时间深挖。它不是什么新潮的深度学习而是基于经典Photometric Stereo光度立体视觉原理的硬核解决方案专门对付那些在单一光照下几乎“隐形”的划痕、凹坑、褶皱。简单来说这个模块的核心思想就是用多个不同方向的光源照射同一个物体拍下多张照片然后通过一套数学方法反算出物体表面的三维法向量场。这样一来即使缺陷在颜色和亮度上与背景相差无几只要它造成了表面的微观起伏就能被清晰地“勾勒”出来。在皮革检测里像细微的刮伤、压痕、或者因鞣制不均造成的厚度差异用传统阈值分割或Blob分析可能束手无策但光度立体视觉却能将其暴露无遗。这个p_do_inspect_leather_photometric_stereo模块就是Halcon封装好的一个针对皮革类材料进行光度立体视觉检测的完整流程从图像采集、标定、重建到缺陷分割一气呵成。2. 核心原理拆解光度立体视觉如何“看见”微观起伏要玩转这个模块不能只当个调参侠得先明白它底层的数学和物理。这能帮你理解为什么参数要这么设出了问题该往哪个方向排查。2.1 从多张二维图像到三维法向量光度立体视觉的基本假设是朗伯体表面即表面向各个方向反射的光强相同。在这个假设下图像上某一点的灰度值只与该点表面的法向量、光源方向以及表面本身的反射率Albedo有关。当我们用n个不同方向的光源n3照射物体并保持相机位置不变进行拍摄时就得到了n张灰度图。对于表面上的同一个物理点它在n张图中的灰度值构成了一个向量I [I1, I2, ..., In]^T。根据朗伯反射模型这个灰度向量可以表示为I (ρ * N) · L。这里ρ是Albedo反射率一个标量N是表面法向量一个三维单位向量L是由n个光源方向向量组成的3 x n矩阵。我们的目标就是从已知的I和L中解算出每个像素点的ρ和N。Halcon的photometric_stereo算子内部就是在解这个方程。它最终会输出两个关键结果Albedo图像和梯度场Gradientfield。Albedo图像可以理解为去除了光照和形状影响的“本征”纹理图对颜色和材质变化敏感而梯度场通常表示为gradient_x和gradient_y则直接描述了表面在x和y方向上的倾斜程度是缺陷检测的“金矿”。2.2 梯度场Gradient与缺陷的关联对于皮革检测梯度场比Albedo图像往往更有用。一个完美的、平整的表面其梯度值会在一个很小的范围内波动。一旦出现划痕一条细长的凹陷其边缘就会产生陡峭的梯度变化在梯度图像上表现为两条明亮的线。如果是凹坑则会形成一个闭合的、梯度值较高的环形区域。褶皱则表现为一系列有规律的、交替变化的梯度条纹。p_do_inspect_leather_photometric_stereo模块的精髓就在于它如何从重建出的梯度场中智能地提取这些异常模式。它并不是简单地对梯度图做全局阈值分割因为皮革本身的纹理如毛孔、天然纹路也会产生梯度。模块内部通常包含纹理抑制、多尺度分析或基于模型匹配的算法以区分“正常纹理”和“异常缺陷”。注意朗伯体假设是核心但也是一种简化。实际皮革表面可能有高光非朗伯反射或互反射光线在凹陷处多次反弹这会影响重建精度。高质量的、均匀的漫射光源以及经过精确几何标定的多光源系统是成功应用的前提。3. 模块流程与关键算子详解我们来把p_do_inspect_leather_photometric_stereo这个函数模块“拆开”看看。虽然不能看到其内部HDevelop代码但根据Halcon的光度立体视觉标准流程和例程的典型结构我们可以推断出它必然包含以下几个关键阶段并涉及一系列核心算子。3.1 阶段一系统标定与图像输入准备这个阶段的目标是建立光源方向矩阵L并为处理准备好图像数据。光源方向标定这是最关键的一步。你需要精确知道每个光源在相机坐标系下的三维方向向量。通常有两种方式使用标准参照物比如一个已知几何形状的标定球。用每个光源单独照射标定球并拍摄通过分析球体图像上的高光点或明暗变化可以计算出该光源的方向。Halcon可能使用calibrate_photometric_stereo或相关算子来完成。已知法向量的标定板使用表面法向量已知的标定板如平整的陶瓷板通过测量在不同光源下的灰度值变化来求解光源方向。 这个步骤通常只需要在系统搭建初期或光源位置变动时执行一次然后将标定好的光源方向矩阵保存下来。图像序列采集与输入模块需要接收一个包含多张图像的元组或数组这些图像是在同一相机位姿下由不同光源依次开启拍摄的。顺序必须与标定时的光源顺序严格一致。在HDevelop中这通常通过循环读取或read_image算子批量读入实现。// 伪代码示意实际在HDevelop中为HALCON语言 // 假设有4个光源 for (int i1; i4; i) { read_image(Image[i], path/to/leather_light${i}.png); } // 将4张图像放入一个元组 tuple_images : [Image1, Image2, Image3, Image4]3.2 阶段二光度立体视觉重建这是核心计算步骤调用Halcon的photometric_stereo算子。// 关键算子调用 photometric_stereo(Images : : Slants, Tilts, ResultType, ReconstructionMethod : Albedo, Gradient)Images输入的多光源图像序列。Slants,Tilts输入的光源方向参数。Slant是光源方向与表面法线通常指Z轴的夹角Tilt是光源方向在XY平面的投影与X轴的夹角。这两个参数来自第一阶段的标定结果。ResultType指定输出类型。对于缺陷检测最常用的是gradient直接获取梯度场。albedo输出反射率图normal输出法向量图。ReconstructionMethod重建方法如default,fast,robust。robust方法能更好地处理高光和噪声但计算稍慢。Albedo输出的反射率图像。Gradient输出的梯度场是一个包含两个通道的图像gradient_x,gradient_y。在这个模块里很可能选择ResultType为gradient因为后续缺陷分析主要基于梯度信息。3.3 阶段三梯度场分析与缺陷分割拿到gradient_x和gradient_y后真正的挑战才开始。如何从中分离出缺陷梯度幅值计算首先通常会将两个梯度通道合成为一个梯度幅值图Magnitudemagnitude(gradient_x, gradient_y, Magnitude)。这幅图直观地显示了表面各处坡度的大小缺陷区域会呈现较高的幅值。纹理抑制皮革天然纹理也会产生梯度。模块内部可能采用以下一种或多种方法抑制纹理频域滤波在傅里叶变换域纹理往往表现为特定的频率成分而缺陷可能分布在不同频带。通过设计合适的滤波器可以抑制纹理频率。各向异性扩散或平滑使用保留边缘的平滑滤波器在平滑掉细小纹理的同时保留缺陷产生的强边缘。纹理背景建模与差分从一批无缺陷的样本梯度图中学习“正常纹理”的背景模型然后将待测图的梯度与背景模型做差分突出异常。这可能用到texture_laws或local_threshold等算子。缺陷特征提取与分割对处理后的梯度幅值图进行阈值分割。这里可能不是简单的全局阈值而是动态阈值使用dyn_threshold用一个平滑后的图像作为参考提取局部对比度高的区域。形态学处理分割后使用opening,closing,connection,select_shape等算子来去除噪声、连接断裂的缺陷区域并根据面积、长度、圆度等形状特征筛选出真正的缺陷。3.4 阶段四结果可视化与输出最后模块会将检测到的缺陷区域Region叠加显示在原始图像或Albedo图像上并可能输出缺陷的数量、位置、 bounding box、特征参数等结果供下游系统如PLC执行剔除动作。4. 实战配置与参数调优心得理解了流程我们来看看在实际项目中调用或借鉴这个模块时需要关注哪些关键点。4.1 硬件搭建光路是成败的一半光源选择与布局数量至少需要3个非共线光源才能唯一确定法向量。4个或更多光源可以提供冗余提高鲁棒性和抗噪能力。p_do_inspect_leather例程很可能使用了4光源系统。类型首选高均匀性的漫射LED面光源或穹顶光。直射型光源容易产生强烈高光破坏朗伯体假设。角度光源的Slant角倾斜角通常在30度到60度之间。角度太小阴影弱梯度信号不明显角度太大可能照亮了不需要的侧面或产生遮挡。多个光源应均匀分布在被测物周围。独立控制必须能精确控制每个光源单独点亮并确保相机只在对应光源亮起时曝光。需要硬件触发同步。相机与镜头使用高动态范围、低噪声的工业相机。因为不同光照下灰度值需要精确。镜头要避免畸变且在景深范围内保证整个皮革表面清晰。4.2 软件参数调优从梯度到缺陷的关键步骤假设我们已获得梯度场gradient_x和gradient_y。梯度幅值后处理magnitude(gradient_x, gradient_y, Magnitude) // 可能需要对幅值图进行增强例如乘以一个系数或进行伽马变换以扩大缺陷与背景的对比度。 multiply_image(Magnitude, Magnitude, 2.0, MagnitudeEnhanced) // 示例线性增强纹理抑制实战方法A高斯差分这是一种简单有效的方法通过两个不同尺度的高斯模糊之差来提取细节缺陷同时抑制大尺度纹理。gauss_filter(MagnitudeEnhanced, ImageGauss1, 5.0) // 大尺度模糊模拟纹理背景 gauss_filter(MagnitudeEnhanced, ImageGauss2, 1.0) // 小尺度模糊保留更多细节 sub_image(ImageGauss2, ImageGauss1, ImageDoG, 1, 0) // 差分得到抑制纹理后的图像方法B形态学顶帽变换适用于纹理比较有规律的情况。gray_tophat(MagnitudeEnhanced, ImageTophat, 15, 15, circle) // 使用一个比纹理颗粒大的结构元素p_do_inspect_leather模块可能采用了更复杂的自适应方法。阈值分割与形态学// 使用动态阈值应对光照不均 mean_image(ImageDoG, ImageMean, 31, 31) dyn_threshold(ImageDoG, ImageMean, RegionDark, 5, dark) // 提取比局部背景暗5个灰度值以上的区域对于凹陷缺陷 // 连接区域并筛选 connection(RegionDark, ConnectedRegions) select_shape(ConnectedRegions, SelectedRegions, area, and, 50, 99999) // 例如面积大于50像素的才认为是缺陷 select_shape(SelectedRegions, FinalDefects, rectangularity, and, 0.3, 1) // 筛选矩形度排除线状噪声实操心得参数没有“银弹”。gauss_filter的半径、dyn_threshold的偏移量、select_shape的特征范围都需要你用一批有缺陷和无缺陷的样本图像反复测试确定。建议将调参过程自动化例如编写脚本遍历参数组合并用标注好的缺陷图计算查全率和查准率找到最优平衡点。5. 常见问题排查与性能优化在实际部署中你肯定会遇到各种问题。下面是一些典型问题及解决思路。5.1 重建结果噪声大梯度图“雪花”严重可能原因1光源不均匀或标定不准。排查检查每个光源单独照射白色漫反射板时的图像是否中心亮四周暗如果是需要更换更均匀的光源或调整光源距离。解决重新进行精确的光源方向标定。确保标定球或标定板摆放位置与皮革检测位置一致。可能原因2相机噪声大或曝光不足。排查查看单张原始图像的灰度直方图是否集中在低灰度区暗部噪声是否明显解决增加光源亮度优化相机增益和曝光时间使图像平均灰度值达到满量程的60%-80%。考虑使用相机的多帧平均功能降噪。可能原因3表面非朗伯体特性强。排查观察皮革表面是否有明显的高光点镜面反射解决尝试在photometric_stereo算子中使用ReconstructionMethodrobust。或者在硬件上尝试给光源加更厚的漫射板或在镜头前加偏振片消除高光。5.2 能检出缺陷但误检太多把纹理当缺陷可能原因纹理抑制参数不合适。排查观察误检区域在原始图像和梯度幅值图上的特征。它们是规则的纹理图案吗解决调整滤波尺度增大高斯差分或顶帽变换中结构元素的尺寸使其大于纹理颗粒的间距。利用梯度方向某些纹理的梯度方向可能具有一致性而缺陷的梯度方向是杂乱的。可以计算梯度方向图phase(gradient_x, gradient_y, Phase)并分析其统计特征来过滤。采用更高级的纹理分析方法例如使用texture_laws算子提取纹理能量特征然后训练一个简单的分类器如GMM来区分纹理区域和缺陷区域。5.3 检测速度慢无法满足产线节拍瓶颈分析使用Halcon的profile工具对函数模块进行性能分析找出耗时最长的算子。通常是photometric_stereo重建或后续的滤波/形态学处理。优化策略降低分辨率如果缺陷尺寸允许先将图像缩小zoom_image_factor再处理能极大减少计算量。ROI处理如果缺陷只可能出现在皮革的特定区域如边缘先设定一个ROI只处理这个区域。选择快速算法在photometric_stereo中尝试ReconstructionMethodfast。硬件加速确保Halcon运行时已启用GPU加速支持CUDA的算子会快很多。检查query_available_compute_devices。代码优化避免在循环内重复创建和销毁大图像对象。将可预先计算的部分如滤波核移到循环外。5.4 对不同颜色/类型的皮革适应性差问题本质不同颜色的皮革Albedo不同导致原始图像灰度值差异巨大可能影响重建的稳定性。解决方案光度立体视觉的优势理论上光度立体视觉重建出的梯度场对Albedo变化不敏感因为它主要依赖几何形状。因此核心应确保梯度提取的稳定性。曝光自适应为每种颜色的皮革设置不同的相机曝光时间或光源强度使不同材料下的图像平均灰度值保持一致。归一化处理在输入photometric_stereo之前可以对每张图像进行简单的归一化如减去均值除以标准差减少整体亮度差异的影响。6. 超越例程扩展应用与进阶思路p_do_inspect_leather_photometric_stereo给出了一个针对皮革的经典范式但我们可以在此基础上进行扩展。6.1 融合其他视觉信息与彩色信息融合光度立体视觉输出的是几何信息。可以同时用彩色相机拍摄一张图将缺陷区域的梯度特征与颜色特征如色差结合起来提高分类准确率。例如某些污渍颜色变化明显但几何变化小而划痕则相反。与深度学习结合将梯度幅值图、Albedo图、甚至原始多光图像作为多通道输入送入一个轻量级的U-Net等分割网络进行端到端的缺陷分割。这尤其适用于缺陷形态极其复杂、传统算法规则难以描述的情况。Halcon的深度学习工具可以无缝集成。6.2 量化缺陷深度光度立体视觉重建出的梯度场理论上可以通过积分得到表面的相对高度图深度图。Halcon的photometric_stereo算子选择ResultType为height_from_gradient并指定合适的积分方法如poisson就可以尝试恢复深度信息。这对于需要判断划痕深度是否超标的定量检测非常有用。不过积分过程对噪声敏感且存在累积误差通常只能得到相对深度而非绝对深度。6.3 开发通用化的光度立体视觉检测模块你可以借鉴p_do_inspect_leather的设计封装一个更通用的photometric_stereo_inspection模块。其输入为多光图像、光源参数、以及一个可配置的“纹理抑制与缺陷分割”参数集。这样这个模块就可以快速适配到布料、塑料件、金属拉丝表面、纸张等多种材料的检测中成为你视觉工具箱里的又一利器。关键在于抽象出共性的处理流程并将材料相关的参数如滤波尺度、阈值暴露为接口。最后想说的是光度立体视觉是一门“功夫在诗外”的技术。算法模块固然重要但更关键的是前期的光、机、电系统设计与标定。花时间把光源调均匀把标定做精确比在软件里调一百个参数都管用。这个p_do_inspect_leather_photometric_stereo模块给我们提供了一个绝佳的范本但它更像一个起点引导我们去深入理解光与表面的对话从而解决更多更具挑战性的工业视觉难题。

相关新闻

软件开发者如何从零设计第一块PCB:以ESP32最小系统板为例

软件开发者如何从零设计第一块PCB:以ESP32最小系统板为例

最近在技术社区里,我注意到一个有趣的现象:很多开发者,尤其是软件和算法背景的同学,对“硬件”总有一种天然的敬畏感,觉得那是另一个高深莫测的领域。当看到别人晒出自己设计的PCB(印刷电路板)时…

2026/8/21 3:56:29 阅读更多 →
GPU显存泄漏排查与进程管理:从nvidia-smi到kill命令的完整指南

GPU显存泄漏排查与进程管理:从nvidia-smi到kill命令的完整指南

1. 从一次“显存泄漏”引发的系统崩溃说起 那天下午,我正在本地机器上跑一个刚调好参数的深度学习模型,用的是那块服役多年的RTX 2070 Super,8GB的显存说多不多,说少不少,跑个中等规模的模型刚好在临界点。训练脚本启动…

2026/8/21 3:56:29 阅读更多 →
FFmpeg实战:为技术视频添加中文字幕的完整流程与问题排查

FFmpeg实战:为技术视频添加中文字幕的完整流程与问题排查

在实际技术博客写作中,我们常常会遇到需要处理视频、音频、字幕等多媒体文件的需求,例如为技术教程录制配音、为开源项目制作多语言介绍视频,或者像输入材料中提到的“自翻中字”场景——为外语视频添加自制的中文字幕。这个过程远不止下载和…

2026/8/21 3:56:29 阅读更多 →

最新新闻

WeChatMsg:三步导出微信聊天记录为 Word、CSV,还能生成年度聊天报告

WeChatMsg:三步导出微信聊天记录为 Word、CSV,还能生成年度聊天报告

WeChatMsg:三步导出微信聊天记录为 Word、CSV,还能生成年度聊天报告 【免费下载链接】WeChatMsg 提取微信聊天记录,将其导出成HTML、Word、CSV文档永久保存,对聊天记录进行分析生成年度聊天报告 项目地址: https://gitcode.com/…

2026/8/22 9:18:34 阅读更多 →
移动端选日期总踩坑?3 行代码接入一个滑动切月的移动端日期选择器

移动端选日期总踩坑?3 行代码接入一个滑动切月的移动端日期选择器

移动端选日期总踩坑?3 行代码接入一个滑动切月的移动端日期选择器 【免费下载链接】vue-mobile-calendar a vue component of calendar for mobile移动端vue日期选择组件 项目地址: https://gitcode.com/gh_mirrors/vu/vue-mobile-calendar 移动端做日期选择…

2026/8/22 9:18:34 阅读更多 →
毕业季AI工具测评:论文查重与简历优化实战指南

毕业季AI工具测评:论文查重与简历优化实战指南

1. 毕业季AI工具测评背景又到一年毕业季,论文查重、简历优化、求职信撰写这些让人头疼的事情接踵而至。作为一名连续三年帮学弟学妹把关毕业工具的老司机,今年我决定系统性地测评市面上主流的6款AI工具,总花费超过500元,就为了帮大…

2026/8/22 9:18:34 阅读更多 →
数学建模竞赛全流程解析:从问题抽象到模型求解与论文写作

数学建模竞赛全流程解析:从问题抽象到模型求解与论文写作

1. 赛题核心与破题思路拿到“2023年中国研究生数学建模竞赛E题”这个题目,很多同学的第一反应可能是去网上找现成的代码和论文。但作为一名多次参与并指导过此类竞赛的“老手”,我想说,直接套用往届模板往往是死路一条。每年的E题&#xff0c…

2026/8/22 9:18:34 阅读更多 →
Claude Code v2.1.235 集成拼写检查:提升代码规范与专业性的工程实践

Claude Code v2.1.235 集成拼写检查:提升代码规范与专业性的工程实践

最近在开发中,经常遇到代码注释或文档里出现拼写错误,虽然不影响程序运行,但提交代码时总感觉不够专业。手动检查费时费力,而一些IDE自带的拼写检查对中文混合场景支持又不够好。刚好,Claude Code v2.1.235版本发布&am…

2026/8/22 9:18:34 阅读更多 →
数学建模实战:基于预测-优化双引擎的生鲜供应链定价与补货决策

数学建模实战:基于预测-优化双引擎的生鲜供应链定价与补货决策

1. 项目概述:从菜篮子到数据模型,一次供应链的数学化实践“蔬菜定价与补货”,听起来像是超市经理每天晨会要讨论的琐事。但当你把它和“国赛数学建模”放在一起,事情就变得有趣了。这不仅仅是给西红柿、黄瓜定个价,而是…

2026/8/22 9:17:34 阅读更多 →

日新闻

沉金PCB工艺实战指南:从设计到SMT焊接的可靠性保障

沉金PCB工艺实战指南:从设计到SMT焊接的可靠性保障

在电子硬件开发领域,PCB(印制电路板)的沉金工艺是提升产品可靠性和焊接质量的关键环节。对于需要高密度互连、长期稳定运行或高频信号传输的板卡,如“黍姐仿通行证”这类可能涉及身份识别、数据交互的硬件项目,选择正确…

2026/8/22 0:00:11 阅读更多 →
电气考研电路八月强化四步法:从知识体系到真题实战的闭环攻略

电气考研电路八月强化四步法:从知识体系到真题实战的闭环攻略

这次我们来看一个针对电气考研电路科目的学习规划项目。它不是软件工具,而是一套聚焦于8月份关键节点的备考策略。对于电气工程考研的同学来说,电路分析是专业课的重中之重,也是拉开分差的关键。进入8月,复习进入强化阶段&#xf…

2026/8/22 0:00:11 阅读更多 →
消除AI代码的“AI味”:Claude Code设计优化技能配置与实战指南

消除AI代码的“AI味”:Claude Code设计优化技能配置与实战指南

大家好,我是专注于前端开发与AI工具实践的技术博主。在日常使用 Claude Code 等AI编程助手时,你是否也遇到过这样的困扰:生成的代码功能上没问题,但代码风格、组件设计、交互逻辑总透着一股“AI味”——布局单调、样式简陋、交互生…

2026/8/22 0:00:11 阅读更多 →

周新闻

基于阿里云与通义千问(Qwen)构建AI应用:从模型调用到生产部署的完整实践指南

基于阿里云与通义千问(Qwen)构建AI应用:从模型调用到生产部署的完整实践指南

如果你是一名开发者,最近可能已经感受到了AI大模型正在从“玩具”变成“生产力工具”的强烈信号。从代码补全到智能Agent,从本地部署到云端API,我们正处在一个技术栈快速重构的节点。然而,面对层出不穷的模型、框架和工具&#xf…

2026/8/21 3:21:33 阅读更多 →
工业通信系统底层逻辑:04 反射——高频能量撞墙之后会发生什么?

工业通信系统底层逻辑:04 反射——高频能量撞墙之后会发生什么?

第四篇:反射——高频能量撞墙之后会发生什么? —— 你以为信号已经过去了,其实它正在回来打你 老Q的现场笔记 第五季,我们正式进入工业神经系统层。这里不再是单个设备的战斗,而是整个工厂“经脉”层面的秩序之战。从这一篇开始,你将第一次看清:看似简单的信号传播,背…

2026/8/22 8:09:09 阅读更多 →
【文章复现】非线性值迭代自适应动态规划(ADP):离散时间非线性系统的策略迭代自适应动态规划算法研究附Matlab代码

【文章复现】非线性值迭代自适应动态规划(ADP):离散时间非线性系统的策略迭代自适应动态规划算法研究附Matlab代码

✅作者简介:热爱科研的Matlab仿真开发者,擅长毕业设计辅导、数学建模、数据处理、建模仿真、程序设计、完整代码获取、论文复现及科研仿真。🍎 往期回顾关注个人主页:Matlab科研工作室👇 关注我领取海量matlab电子书和…

2026/8/21 6:07:56 阅读更多 →

月新闻

免费解锁百度网盘SVIP加速:macOS用户必备的下载提速终极指南

免费解锁百度网盘SVIP加速:macOS用户必备的下载提速终极指南

免费解锁百度网盘SVIP加速:macOS用户必备的下载提速终极指南 【免费下载链接】BaiduNetdiskPlugin-macOS For macOS.百度网盘 破解SVIP、下载速度限制~ 项目地址: https://gitcode.com/gh_mirrors/ba/BaiduNetdiskPlugin-macOS 还在为百度网盘macOS版的龟速下…

2026/8/21 16:42:28 阅读更多 →
终极ncmdump指南:3分钟实现网易云NCM音乐解密与格式转换

终极ncmdump指南:3分钟实现网易云NCM音乐解密与格式转换

终极ncmdump指南:3分钟实现网易云NCM音乐解密与格式转换 【免费下载链接】ncmdump 项目地址: https://gitcode.com/gh_mirrors/ncmd/ncmdump 还在为网易云音乐下载的NCM格式文件无法在其他播放器播放而烦恼吗?ncmdump解密工具帮你轻松解决这个困…

2026/8/22 7:31:03 阅读更多 →
HarmonyOS 应用开发《掌上英语》第81篇: 智能体卡片:为英语学习 App 打造桌面级学习助手

HarmonyOS 应用开发《掌上英语》第81篇: 智能体卡片:为英语学习 App 打造桌面级学习助手

AgentCard 智能体卡片:为英语学习 App 打造桌面级学习助手适用平台:HarmonyOS 7.0 (API 26 Beta)一、引言 HarmonyOS 7.0(API 26 Beta)新增了 AgentCard 智能体卡片能力,这是继 HMAF(鸿蒙智能体框架&#x…

2026/8/22 3:22:48 阅读更多 →