- 博客(244)
- 问答 (1)
- 收藏
- 关注
原创 封装表 pcl+halcon+vtk
1, convexhll_2dpoint_to_mes(平面点云贪婪三角)2,get_area_form_boundary计算平面点云面积。1,vsobj_n 以不同颜色显示多个obj。Pcl和halcon3d封装函数表。
2026-02-12 17:32:07
48
原创 Halcon开发必备:9个常用Tuple算子,新手少走半年弯路<
本文总结了Halcon中9个常用Tuple算子的功能与实战应用场景,包括tuple_min/max(极值计算)、tuple_min2/max2(数组比较)、tuple_sort(排序)、tuple_sort_index(索引排序)、tuple_sgn(符号判断)、tuple_inverse(数组反转)和tuple_find(元素查找)。特别指出新手易混淆点:tuple_sort_index返回的是索引而非值,并强调下标从0开始。这些算子在轮廓处理、公差计算、异常值过滤等工业视觉场景中具有重要作用,掌握它们能
2026-04-10 14:58:06
27
原创 openclaw安装流程 +火山方舟
本文记录了OpenClaw的安装配置过程,详细说明了所需依赖版本(Git 2.45.1、Node.js v22.22.2、npm 10.9.7)。安装步骤包括:1)设置npm国内镜像源;2)通过npm安装openclaw最新版;3)使用特定命令配置并选择VolcanoEngine平台。配置过程中需要输入API密钥并选择模型(volcengine-plan/ark-code-latest),其他选项可跳过。最终完成配置后即可打开WebUI界面。
2026-04-09 14:05:28
128
原创 halcon 多级引导对位
本文提出了一种基于金字塔图像层级和引导匹配的角点检测方法。首先在高层级小图像上进行角点检测和随机匹配,生成初始投影矩阵;然后将该矩阵放大作为低层级引导;最后通过距离筛查进行引导对位,提高匹配点品质。该方法通过层级递进和距离筛选优化匹配过程,保持了投影变换的简单性,同时提升了匹配的鲁棒性。
2026-03-27 10:56:14
31
原创 halcon 如何获取创建模板的矩阵
该摘要展示了一个基于Halcon的图像处理流程:首先读取打印机芯片图像,通过绘制矩形区域并生成ROI,然后对图像进行区域裁剪。接着创建形状模板模型,并在裁剪后的图像中进行模板匹配,获取目标位置和角度信息。最后通过向量角度转换为刚体变换矩阵。整个过程实现了打印机芯片的定位识别功能,适用于工业视觉检测应用。
2026-03-04 16:46:03
60
原创 halcon 图像去畸变
Images, Images, Images(这个时中间过渡,写成跟输出一样就行);* 3. 用新参数校正图像,消除径向畸变。
2026-03-04 16:43:42
49
原创 halcon HomMat3D到HomMat2d
摘要:本文提出了一种将3D姿态矩阵转换为2D图像变换矩阵的方法。首先通过register_object_model_3d_pair获取3D对象匹配后的旋转矩阵Pose,然后使用pose_to_hom_mat3d将其转换为3D齐次矩阵HomMat3D。在不考虑Z轴变化的情况下,通过hom_mat2d_identity初始化2D齐次矩阵,并按照特定规则将HomMat3D的元素映射到HomMat2DIdentity中,其中第2、5个元素需除以缩放系数zoom_rate。该方法实现了3D姿态到2D刚性变换的转换,适
2026-02-28 09:19:21
33
原创 QT QChartView
本文介绍了使用Qt图表库创建曲线图的方法。首先通过QChart创建图表,添加X/Y轴并设置范围(0-100)。然后创建QSplineSeries曲线序列,设置名称、颜色和数据点。最后将图表添加到ChartView显示。第二部分讲解了图表交互原理,重点介绍了mapToPosition()和mapToValue()两个关键函数:前者将图表坐标转换为控件像素坐标,后者则实现反向转换。文中还演示了如何获取绘图区域坐标和坐标转换的具体应用,为图表交互开发提供了实用参考。
2026-02-11 15:14:25
226
原创 qt 及 c++ 配置charts(Qchartview)
摘要:本文介绍了Qt界面升级的四个关键步骤:1) 将graphics_view升级为QChartView,需使用QtCharts/QChartView头文件(无.h后缀);2) 修改CMakeList文件,添加find和link连接时需要加入if判断以避免警告;3) 正确设置头文件;4) cpp文件中必须确保"widget.h"头文件在"./ui_widget.h"之前引入。这些修改涉及Qt图表组件升级和编译配置优化。
2026-02-10 18:28:14
159
原创 vtk封装Himage2vtk Himage 转vtkimagedata的函数
本文介绍了一个Halcon图像转VTK图像数据的封装函数实现。该函数支持单通道灰度图像和三通道彩色图像的转换,能自动处理不同格式的输入图像。核心流程包括:获取图像尺寸和通道数,创建对应格式的VTK图像对象,分解三通道彩色图像(如需要),最后通过双重循环逐像素填充数据。函数实现了图像格式的自动识别和转换,将Halcon图像数据高效地转换为VTK可处理的图像格式。
2026-02-09 15:24:29
39
原创 pcl polygonmesh在vtk中的显示
其实还是挺麻烦,不如在pcl中直接创建一个visulizer然后添加polygonmesh,设置属性。然后将它的renderwindow,复制给vtk的renderwindow进行显示。
2026-02-09 11:21:37
39
原创 QT 槽和信号
类::signals_1 信号。&类::slots_1 响应。参数可以直接位对位的传入,可以直接在slots中进行使用。connection( ui->__,信号的发出者。对应的slots函数。
2026-02-06 16:53:53
354
原创 vtk 完整的左键拾取图像像素灰度值的 interactorstyle
【代码】vtk 完整的左键拾取图像像素灰度值的 interactorstyle。
2026-02-06 10:01:22
314
原创 VTk vtkcamrea
ComputeVIewPlaneNormal() ——跟进相机的位置和焦点及视角,计算视屏买的法向量(很重要)1, vtkCamera->SetPosition() 设置相机的位置,4,vtkXCamrea->SetClippingRange()前后裁剪平面。2,vtkCamera->SetFocusPoint(), 设置相机焦点。3,vtkCamera->SetViewAngle() 视角 默认30。3,vtkCamera->SetViewUp() 设置视觉方向。
2026-02-05 11:38:04
120
原创 vtk picker 与 coordinate
1)初始化 vtkSmartPointer<vtkPointPicker> pointPicker = vtkSmartPointer<vtkPointPicker>::New();result是执行结果,clickpos[0],clickpos[1]是display窗口的坐标,renderwindow是特定的场景。vtkIdtype pointid=pointPincker->GetPointID() 拾取点在点云中的id。
2026-02-05 10:48:49
144
原创 vtk <vtkRenderWindowInteractor>交互器
/添加观察者,这个观察者是 vtkcommand的智能指针,他要带一个特定格式的功能函数。1)功能事件声明 void function1(vtkObject *caller,unsinged long id,void*,void *)//获取事件发生时,displaywindow的坐标。//设置交互的风格。(这里safedowncast返回的不知智能指针,是原始指针)4)绑定callbackcommand到interactor()获取触发的场景(interactor是在场景下进行的)
2026-02-05 10:29:13
309
原创 vtk回调事件(添加观察者)
/ vtkobject *caller 事件的触发者, unsigned long eid谁触发的(谁是个代号),clientdata是用户出入给回调函数的数据(输入),事件附加数据。1,通过vtkcallbackcommand添加在vtkrenderwindowinteractor下,也就是交互器里面。2)为vtkcallbackcomand添加回调函数(为观察者提供功能)1)声明一个vtkcallbackcommand(其实就是一个观察者)3)为interactor添加观察者(观察者,绑定)
2026-02-04 10:31:22
203
原创 vtk直接读入一张图片和创建图片
对于多通道图像vtk的imagedata的保存方式rgbrgbrgb这样来保存的。可选择的数据类型有VTK_INT, VTK_UNSINED_CHAR。2,创建一个vtkimage图像。1表示每个颜色标量的成员是多少!1,快读读入一张黑白或者彩色图。
2026-02-03 14:03:19
146
原创 文件输入输出<fstream>和路径操作<filesyatem>
文件输出ifstream 读操作,ofstream写操作,fstream读写操作;输出流(out_file_stream)Ofs.open(地址,操作模式(用 | 进行拼接))操作模式ios::in 只读,out写,app追加,,再创建。ios::binary输出二进制判断是否打开是否打开失败)String buf{每次读入一行。
2026-01-30 13:56:40
407
原创 QT5 报错无法找到头文件
C1083: 无法打开包括文件: “form2.h”: No such file or directory在添加了设计类,或者重写了类以后需要在cmakelist中添加一行代码解决方法
2026-01-29 15:49:02
41
原创 c++ release下的debug
摘要:本文介绍了常用的debug方法,包括查看调用堆栈、设置断点、监视内存和条件断点。重点讲解了如何在Release模式下调试:1)在链接器设置中启用调试信息生成;2)关闭编译器优化和内联函数扩展以保证调试可见性;3)调试完成后需恢复优化设置以发布最终版本。这些方法可帮助开发者在不同编译模式下有效定位和解决问题。
2026-01-26 17:44:23
67
原创 change_domain与reduce_domain
图像处理中reduce_domain和change_domain的异同分析:两者都能缩减图像域,保留空灰度值区域且不改变原始图像尺寸。主要区别在于操作对象不同 - reduce_domain作用于蒙版图像,而change_domain处理原图。示例演示了交替使用这两个算子产生的不同效果:先对原图进行reduce_domain缩减区域,再对结果执行change_domain变换域,最后再次应用reduce_domain,最终得到ImageReduced1。这种操作序列表明,尽管功能相似,但二者的处理顺序会显著
2026-01-24 15:45:49
74
原创 pcl渲染显示
这里的‘‘z’’填入的是点云的属性。比如pointxyzi,就可以是‘‘x’’,"y","z","intensity",对这几个属性都是可以完成映射的,而且不用进行0-1的归一化非常方便。为你的点云设置一个你喜欢的颜色。注意这里的输入是rgb的三个值,也就是说设置完后,点云的单色点云。主要是针对rgb的color彩色进行显示。用起来就比较方便了。针对pointxyzrgb点云。主要作用是针对点云的属性,进行彩色映射。
2026-01-23 10:40:15
44
原创 halcon3d显示visualize_object_model_3d
本文介绍了点云显示的关键参数设置方法。重点参数包括:1)'colored'用于多颜色渲染;2)'attribute'控制显示形式(通常选'points');3)'color_attrib'需指定属性类型才能依赖显示;4)lut用于颜色映射;5)可通过属性_0/1区分多物体显示设置。实际操作中,灰度显示需将属性设置为'points',彩色显示则需分别设置'red'、'green'、'blue'三个通道属性,且'colored'参数值不能小于3。这些设置通过visualize_object_model_3d函数
2026-01-22 17:23:56
61
原创 pycharm下配置halcon
本文总结了在PyCharm中配置Halcon环境时遇到的常见问题及解决方法。主要步骤包括:1) 安装Python 3.10环境;2) 通过pip安装mvtec-halcon==23110.0.0;3) 将Halcon的4个DLL文件复制到根目录。特别指出read_image等函数无法使用的原因是PyCharm默认2.56MB的文件大小限制,解决方案是修改配置文件参数idea.max.intellisense.filesize和idea.max.content.load.filesize为100000以扩大限
2026-01-21 10:57:46
142
原创 qt+vtk QVTKOpenGLNativeWidget图像显示
3,对图像进行渲染->绑定到ui的控件窗口->绑定交互。2,将图像读入,并转为vtkimagedata数据。这是一个通用的范本。放在这里 后期方便自己使用。1,先重写一组鼠标交互,满足鼠标交互的需求。
2026-01-08 20:01:53
124
原创 点云在qt窗口还原
可以通过 visualizer->getcameraparamters(cam)获得赋值通过 visualizer->setcameraparamters(cam)对场景下的相机进行赋值cam.pos 是eigen::vector3f结构,包含相机xyz的值——cmp.view 也是eigen::vector3f结构 包含相机沿xyz的旋转在这里介绍点云在一顿操作后,快速还原到初始状态第一步在显示算法1的末尾 获取cam的值//之后在这里获取第二步创建slots函数。
2026-01-08 11:16:45
62
原创 点云在qt的QVTKOpenGLNativeWidget控件上显示
1,创建新的vtkrenderwindow,并将pclvisualizer的渲染器绑定到vtk的渲染窗口上。通过一个函数传入一个pclvisualizer指针,和一个ui控件,完成显示。这两步是自由的,只要动pcl就可以实现,不会在deepseek上到处都能找到pclvisualizer的使用。3.2,将pcl的pclvisualizer的交互设置,设置到新的vtkrenderwindow上。2,将新的vtkrenderwindow绑定到ui的控件上。2,pcl的pclvisualizer的显示设置。
2026-01-07 19:42:42
186
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人
RSS订阅