自定义博客皮肤VIP专享

*博客头图:

格式为PNG、JPG,宽度*高度大于1920*100像素,不超过2MB,主视觉建议放在右侧,请参照线上博客头图

请上传大于1920*100像素的图片!

博客底图:

图片格式为PNG、JPG,不超过1MB,可上下左右平铺至整个背景

栏目图:

图片格式为PNG、JPG,图片宽度*高度为300*38像素,不超过0.5MB

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(261)
  • 资源 (4)
  • 收藏
  • 关注

原创 【dump文件配置与查看】

正常情况下,可执行程序异常退出后不会生成dmp文件,这给定位分析问题原因带来了极大的困难。通过修改注册表我们可以让程序生成dmp文件,配合windbg工具的使用,可以方便的帮助定位异常问题原因。

2024-09-06 16:22:41 689

原创 【VTK 图形基本操作进阶_表面重建技术(等值面提取)】

由于这一方法原理简单,易于实现,目前已经得到了较为广泛的应用,称为三维数据等值面生成的经典算法。等值面提取类根据数据类型的不同而有所侧重。首先通过一个reader对象来读取一幅图像,并将输入到vtkMarchingCubes中,提取等值面时,最重要的是要设置等值面的数值,SetValue()函数用于设置等值面的值,其第一个参数表示等值面的序号,因此可以通过这个函数设置多个等值面值来提取多个等值面。此时可通过等值面提取技术,仅提取感兴趣的一个或者几个组织轮廓,并生成网格模型以供后续的处理和研究。

2024-07-29 22:22:26 937

原创 【拟合方法】

huber`和 `tukey`是强大的误差统计方法,用来估算无异常点的轮廓点和近似圆的距离标准差。在Tukey算法中,异常点事被删除,而在Huber算法中,异常点仅仅是被抑制,或者更准确的说,它们是线性加权的。在计算机科学中,代数距离更常见用于分析数据点的关系,而在物理测量中,几何距离可能更为精确,尤其是在涉及真实世界物体形状和尺寸时。(4)`geometric`这种方法最小化轮廓点和结果圆之间的几何距离,这种算法在距离统计上是最优的,但需要更多的计算时间,如果轮廓点被噪声严重影响,建议使用这个选项;

2024-07-17 15:58:07 350

原创 【c++ 容器 算法学习】

C++标准库中的容器提供了许多有用的工具,其中就包括了std::back_inserter。这个工具可以用来在容器的末尾插入一个元素,并且不会改变容器的顺序。本文将会详细介绍如何使用std::back_inserter。std::back_inserter的使用非常简单。然后,我们可以在算法中使用std::back_inserter。可以看到,std::back_inserter成功地插入了元素4,并且没有改变容器中元素的顺序。使用C++标准库中的std::back_inserter进行迭代器插入。

2024-07-17 13:49:36 324

原创 【【Opencv】 Mat、vector、Point互转】

pp和output的区别在于:pp是vector而output是vector。使用Mat存储数据,并读取相应元素。将数组内容传递给Mat。

2024-07-16 10:35:41 332

原创 【mat 函数求导 求极值】

mat 函数求导 求极值。

2024-07-11 18:12:08 181

原创 【圆拟合算法】

在计算机科学中,代数距离更常见用于分析数据点的关系,而在物理测量中,几何距离可能更为精确,尤其是在涉及真实世界物体形状和尺寸时。在Tukey算法中,异常点事被删除,而在Huber算法中,异常点仅仅是被抑制,或者更准确的说,它们是线性加权的。这种方法最小化轮廓点和结果圆之间的几何距离,这种算法在距离统计上是最优的,但需要更多的计算时间,如果轮廓点被噪声严重影响,建议使用这个选项;类似于“代数方法(algebraic)”,在此基础上,采用Tukey算法对轮廓点进行加权,忽略离群点;

2024-07-11 16:47:15 403

原创 【图像形状上下文特征ShapeContexts】

这些点的统计分布直方图,成为该点的形状上下文。轮廓不同点处的形状上下文是不同的,但相似轮廓的对应点处趋于有相似的形状上下文,如图2。3DSC是直接在2DSC上扩展而来,扩展为以点P为球心,R为半径的球区域,球的北极点由重建法线来估计。其中v(j, k, l)对应第j个同心球,第k个方位方向,第l个羊角方向区域对应的体积,\varrho反应了局部点的密度,即以P点为球心,a为半径的球体内的点数。:对给定的一个图像,获得图像的轮廓,对轮廓边缘采集到一组离散的点集(共n个点)。由结果可知,相似的图像距离更近。

2024-07-11 16:05:06 641

原创 【opencv中两个LSD直线检测算法的区别与应用】

因此,如果你的OpenCV版本高于4.0,那么在构造LSDDetector对象时,应该使用BinaryDescriptor::Params参数,而不是LSDOptions参数。边缘检测: 传统的直线检测方法一般采用边缘检测算法提取二值边缘图像,然后利用Hough变换将表示每条直线属性的参数投影到Hough空间中。缺点是依赖于边缘检测算法的准确性,在边缘密集的地方容易出现异常检测。LSD检测 LSD算法是一种基于梯度信息的直线检测方法,具有检测速度快、参数自适应、精度可达到亚像素级的特点。

2024-07-11 15:39:36 433

原创 【random_shuffle()详解】

random_shuffle()是一种常见的随机化函数,它能够将容器(如数组或列表)中的元素顺序随机打乱。这为开发者提供了在不同场景下引入随机性的便捷方式,比如游戏开发、数据分析以及算法优化等。

2024-07-11 14:12:54 840

原创 【拟合圆的梯度下降法例子】

最近研究了一下梯度下降法,所以写了个拟合圆的方法。拟合圆属于非线性拟合。网上的最小二乘法拟合圆公式并不是误差的平方,而是4次方(为了去掉公式里的开方)。一般可以先用网上的公式得到一个初始解,然后再用梯度下降法继续求精。梯度下降法的公式推导如下。下述代码基于VS2017、Qt5.9和OpenCV430,通过了验证。代码中为了加速收敛限制了迭代的最小步长为0.005。如果步长小于它则会放大步长,因此该程序的求解精度约为5‰。

2024-07-11 14:03:27 205

原创 【opencv 相机内参解释 opencv内参标定】

(1)标定的目的在进行相机标定之前一定要搞清楚相机标定的目的,简单的说,相机标定主要是根据标定板在相机下的不同位置去求解出相机的内参和外参。内参是相机的固有属性,也就是说无论你标定板如何放置,你的相机固不固定,相机的内参不受影响,但是内参的准确性与标定板图像的个数有关,一般而言标定板放置的位置越全面,相机的内参越准确,误差越小。对于相机的外参而言,是世界坐标系相对于相机坐标系的空间变换(旋转矩阵和平移矩阵)。(2)内参介绍fx:单位毫米内X方向上像素的个数;fy:单位毫米内Y方向上像素的个数;

2024-07-11 14:01:06 1652

原创 【 projectPoints来旋转、平移和投影一组 3D 点,并使用 solvePnp来查找此旋转和平移】

我使用 openCV 函数 projectPoints() 来旋转、平移和投影一组 3D 点,并使用 solvePnp() 来查找此旋转和平移。当镜头畸变系数全部为零时,这很有效,否则就失败了。

2024-07-11 13:51:18 231

原创 【Matplotlib plt.colorbar添加颜色条 】

Matplotlib plt.colorbar添加颜色条:从入门到精通,只需一篇文章!解决python画图中colorbar设置刻度和标签字体大小python 设置颜色渐变条colorbar

2024-06-25 17:06:33 261

原创 【AOI设备硬件选型要求】

这仅仅只是相机的像素精度,并不代表整个系统的精度就有如此高,还有其它的精度也要考虑,如镜头的分辨率,系统的抖动,光源的波长(颜色),物体本身的特征等等。通常传感器的尺寸与所选择的像素是对应的,如30W通常是1/3’的,130W-500W是1/2’的,有些500W也有2/3’的。条光长度能够照明所需打亮的位置即可,无须太长造成安装不便,同时也增加成本,一般情况下,光源的安装高度会影响到所选用条光的长度,高度越高,光源长度要求越长,否则图像两侧亮度传经比中间暗;如果有其它接口的镜头,也要考虑相机的接口。

2024-06-25 14:07:11 868

原创 【如何计算相机分辨率和镜头选型】

实际光学放大倍率 = 焦距(f) 物距(𝐷) = 50 75 ≈ 0.667 视野长度 = Sensor 长度(h) 实际光学放大倍率 =结论:选用 50mm 镜头,搭配 500 万像素相机,可以达到 12.662mm x 10.593mm 的视野,单像素精度 5.2µm。光学放大倍率(β) = Sensor 长度(h) 视野长度(𝐻) = 8.4456 12 ≈ 0.7038。为保证画面整体的可应用性,选用镜头的像面尺寸应大于相机芯片的对角线尺寸(也简称为靶面),否则会出现。

2024-06-25 13:50:47 942

原创 【MIL2OpenCV和OpenCV2MIL】

加拿大 MIL---------------------加拿大的Matrox Imaging Library(缩写为MIL)美国 Opencv------------------由美国Intel公司建立,如今由Willow Garage提供支持。

2024-06-03 11:27:47 175

原创 【Halcon深度学习 预训练网络模型介绍】

SqueezeNet在保证精度不损失的同时,将原始AlexNet压缩至原来的510倍。(Squeezenet比AlexNet参数少50倍,再使用了deep compression使得模型压缩至原来的510倍)。SqueezeNet的核心指导思想是——在保证精度的同时使用最少的参数。SqueezeNet提出了一种多分支结构—fire model。这个结构由squeeze层和expand层构成。

2024-05-30 16:48:54 1018

原创 【halcon读取onnx模型】

节点要求:不支持特殊节点。

2024-05-30 16:45:23 416

原创 【VTK 基础模块总结】

1、物体的光照属性主要包括环境光系数、漫反射光系数、镜反射光系数和镜面指数四个,分别用方法SetAmbient(),SetDiffuse(),SetSpecular()和SetSpecularPower()进行设置。由x,y值组成,范围位于(-1,1),z值表示深度坐标。:渲染窗⼝渲染的对象,窗⼝中每⼀个具体需要渲染的对象都是⼀个actor,可以通过 actor 这⼀层的⽅法来设置对象的表⾯属性、颜⾊、透明度、纹理等。2、在VTK中,相机的实质是一个观测点,与人眼的功能相同,相机的视野范围是一个锥状体。

2024-05-30 11:11:47 882

原创 【读入DICOM图像序列 重建三维体数据 并输出为3维模型】

【代码】【读入DICOM图像序列 重建三维体数据 并输出为3维模型】

2024-05-30 11:06:24 305

原创 【c++ 调用python】

将Python目录下的include和libs文件夹路径配置到属性表中,如果需要用到虚拟环境,就把envs虚拟环境下的相关文件路径配置到属性表。解决方法:在自己安装的python目录中搜索"object.h"文件,将其56行"#define Py_REF_DEBUG"语句注释掉即可。问题出在python.h这个头文件中存在一个变量名叫“slots”,然而slots又是qt的关键字,所以qt的moc会把它当成宏先处理掉。导入头文件 Python.h:#include

2024-05-29 14:10:07 818

原创 【GPU/CPU/TensorRt/OpenVINO推理速度】

时间 引擎模式51ms 12th Gen Intel® Core™ i7-12700F (cpu:0)21ms 12th Gen intel® core™ i7-12700F with OpenVino (cpu:0:0penVino) Float3218ms 12th Gen intel® core™ i7-12700F with OpenVino (cpu:0:0penVino) Float16时间 引擎模式6.1ms NVIDIA GeForce GTx 1660 SUPER (g

2024-05-29 10:51:07 317

原创 【matlablib绘图】

除了直接使用gnuplot离线数据绘图外,可以在halcon中进行绘图。在此使用python matplotlib绘图。

2024-05-29 09:57:38 214

原创 【Python用psutil获取CPU、内存等硬件信息】

psutil是Python的一个第三方库,提供了各种强大的硬件信息查阅功能,是标准库推荐的第三方库。一般conda会自行携带这个模块,如果未安装,可直接pip。

2024-05-29 09:48:22 410

原创 【gnuplot halcon c++ opencv绘制函数】

【代码】【gnuplot halcon c++ opencv绘制函数】

2024-05-15 17:47:54 245

原创 [c++ 调用python程序进行mat图像传输]

配置附加依赖项:在“链接器” -> “输入”一栏中,添加Python SDK的库文件。配置包含目录:在“包含目录”一栏中,添加Python SDK的include目录。编写C++代码:在你的C++项目中,编写调用Python的代码。你可以从Python官方网站下载与你的Python版本相对应的Python SDK。配置库目录:在“库目录”一栏中,添加Python SDK的libs目录。对于C++调用Python程序进行Mat图像传输,可以使用Python的OpenCV库和C++的OpenCV库进行实现。

2024-01-18 10:06:29 482

原创 【机器视觉硬件控制平台】

4、在编码器控制(EncoderControl)选项中设置编码器选择器(EncoderSelector)为Encoder0,编码器源A(EncoderSourceA)选择Line0,编码器源B(EncoderSourceB)选择Line1,如果产品有反转时拍照的需求,编码器触发模式(EncoderTriggerMode)可选择任意方向(AnyDirection),编码器计数模式(EncoderCounterMode)选择遵循方向(FollowDirection)。和dmc_board_close();

2023-11-04 21:03:09 168

原创 【c# halcon环境搭建】

【代码】【c# halcon环境搭建】

2023-11-03 23:00:23 290

原创 【使用C++语言 编写CPU多核绑定程序】

【前言 什么是CPU亲和性 如何将CPU亲和性应用到程序中?thread 线程绑定CPU方法 绑定常用函数 taskset命令 参考质料】

2023-10-13 14:30:42 316

原创 【如何使用 cv::imshow 直接显示 cv::cuda::GpuMat?】

我的问题出现在方法 2.当我尝试直接使用 imshow 显示 GpuMat 时,它给了我错误 msg: OpenCV(4.5.5) F:\OpenCVWithCUDA\opencv-4.5.5\modules\core\src\matrix_wrap.cpp:111: error: (-213:函数/特性未实现) 你应该在函数’cv::d ebug_build_guard::InputArray::getMat’ 中显式调用 cuda::GpuMat 对象的下载方法 InputArray::getMat’

2023-07-31 18:23:30 630 1

原创 Python手写NCC模板匹配

OpenCV中的模板匹配是支持基于NCC相似度查找的,但是不是很好用,一个主要的原因是查找最大阈值,只能匹配一个,自己比对阈值,又导致无法正确设定阈值范围,所以问题很多。大体的功能跟OpenCV实现的模板匹配功能比较相似,改进的地方就是比较方便的实现多个对象匹配的直接输出Box框。就是参照这个公式,然后基于OpenCV提供的积分图计算函数,实现了NCC相似度比较计算,值在0~1之间,1表示完全相似,0表示完全不相似。

2023-07-12 11:51:38 400

原创 远心镜头和普通镜头的区别

机器视觉应用中有普通镜头和远心镜头,普通工业镜头在精密检测中因为设计与制作的限制,总是会产生图像变形、外部光源干扰等问题,影响到了检测的精密性。远心镜头是专门为消除传统工业镜头视差而设计的光学镜头,主要是为纠正传统工业镜头的视差而特殊设计的镜头,它可以在一定的物距范围内,使得到的图像放大倍率不会随物距的变化而变化,也就不会产生近大远小的情况。远心镜头是一种高端的工业镜头,可以获得尽可能高的精度,解决普通镜头存在的上述问题。远心镜头的放大倍数不会随深度而变化,可有效避免测量误差,特别适合于尺寸测量的应用。

2023-07-06 09:42:45 525

原创 【频域滤波来检测非均匀照明表面的缺陷(划痕)】

该程序展示了如何通过频域滤波来检测非均匀照明表面的缺陷(划痕)。*然后,在频域中对输入图像进行傅立叶变换和滤波,从而增强高频信息。*最后,将其转换回空间域,并通过形态学对增强的缺陷进行后处理。*首先,创建一个合适的带通滤波器。

2023-06-19 15:04:34 135

原创 【测量图像的清晰度】

在某一点上,透镜处于正确的焦点,这也被四个数量函数的峰值(在所有四个函数的中间)所强调。*它们是模糊度(自相关)、局部邻域的图像差异(差异)、图像中的梯度和频率范围(带通)。*这些量是为一系列图像计算的,这些图像在不同的焦点上描绘了一个物体。*此示例显示了如何使用四个特征量来测量图像的清晰度。

2023-06-19 15:03:53 217

原创 【估计两个连续图像之间的旋转中心】

因为光流的鲁棒估计仅在不均匀区域中是可能的,所以sobel_amp后跟阈值被用于从光流场选择用于旋转估计的有效向量。*这个程序演示了如何使用optical_flow_mg运算符来估计两个连续图像之间的旋转中心。

2023-06-19 15:01:31 108

原创 【局部可变形匹配来查找变形的对象】

这个示例程序展示了如何使用局部可变形匹配来查找变形的对象。*在这个例子中,物体的变形是由模拟的棉塞印刷效果产生的。*准备MVTec徽标的局部可变形模型。

2023-06-19 15:00:51 118

原创 【dxf文件创建平面校准可变形模型】

利用该图像和模型轮廓的相应位置,操作符set_planar_calib_deformable_model_metric提取缺失的极性信息。首先,从dxf文件创建平面校准的可变形模型。dxf文件没有极性信息,因此使用“ignore_local_polarity”度量。该极性信息允许使用比“忽略本地极性”更具区分性的度量“使用极性”。此示例程序显示了从dxf文件创建平面校准可变形模型。然后,在搜索图像中找到该模型的实例。请注意,必须在世界坐标中提供模型。最后,在搜索图像中定位新模型。阅读金属零件的图像。

2023-06-19 15:00:03 153

原创 【测量pcb走线的宽度】

首先,我们使用操作符lines_gauss来确定轨迹的宽度。*该程序显示了如何测量pcb走线的宽度。*之后,沿着轨道在每个点检查宽度。*最后,提取轨迹过窄或过宽的区域。

2023-06-19 14:58:03 212

原创 【傅立叶变换来确定网格的旋转角度】

通过将任意旋转栅格的边缘方向的频谱与参考频谱相关联,可以确定栅格的旋转角度。*首先,参考图像(旋转角度0°)用于创建边缘方向的参考光谱。*此示例显示了如何使用傅立叶变换来确定网格的旋转角度。

2023-06-19 14:57:42 101

Ubuntu_Qt_CUDA编程.pdf

Ubuntu_Qt_CUDA编程.pdf

2022-10-10

fbverberbebebeb

bebeebeebebebebeb

2022-07-11

ssd yolo net picture loss

ssd yolo net picture loss

2022-06-08

基于深度学习肺部CT图像分割算法研究

肺癌是一种世界性的高发疾病,死亡率更是居高不下。早发现,早治疗是提高肺癌的治愈率和延长患者生命周期的重要手段,而肺结节是肺癌早期的主要表现形式,因此,对肺结节的早期诊断分析是提高肺癌患者生存率的关键。利用计算机断层扫描技术(Computed Tomography, CT)筛查肺结节是目前通常采用的诊断方法。随着患者的日益增多,肺部 CT 数据也在呈指数级地增长,无疑给医师的人工筛查工作带来了巨大的挑战和负担,因此使用计算机辅助诊断(Computer Aided Diagnosis, CAD)技术进行肺结节检测分割十分必要,能极大的提高医师的诊断效率并进一步提高肺癌诊断的准确率。 由于肺结节在尺寸、形状上的多变性以及与肺部血管等组织的相似性。在使用传统分割方法进行肺结节分割时,过于依赖医师的先验知识及主观判断,导致容易出现漏分割和过分割的情形。利用深度学习算法的分割过程不再需要人为选择特征,并且能够提取到更具体、更有辨识度的信息,将深度学习算法用于医学图像分割现已成为一个重要的研究方向。U-Net 网络因结构简单、泛化能力强,已广泛应用于医学图像处理领域。

2022-05-27

空空如也

TA创建的收藏夹 TA关注的收藏夹

TA关注的人

提示
确定要删除当前文章?
取消 删除