- 博客(28)
- 收藏
- 关注
原创 c++ 多品牌工业相机SDK开发
实际工程中逃不掉使用工业相机sdk获取图片,那么就有需求将多品牌相机开发集成到一个工具类,使用统一接口,具体使用哪个品牌相机就初始化哪种子类;且编译阶段通过宏定义屏蔽或开放指定相机的代码,防止编译需要用到的lib库缺失导致编译失败。如果有遇到高帧率采集,可以使用队列方式,先将回调获取的图片存入队列,再依次出列进行图像处理。有海康大恒巴斯勒三类相机代码,请大家下载使用有问题可反馈。1.设计一个基函数类,所有相机子类继承自该基类并实现。2.基类中包含一个工厂方法,用来new一个实例类。
2026-06-23 20:15:00
253
原创 opencv 微小缺陷 频域实战
2.将halcon的gray_range_rect使用opencv的形态学操作替换。2.构造高斯滤波器,设计带宽滤波,去除高频噪点和低频模糊。4.挑选合适的阈值对缺陷进行提取,辅助一些形态学操作。halcon中有例程针对微小不明显缺陷的检测。1.opencv实现多种频域滤波操作。3.针对滤波后的时域图进行局部增强。1.将图片转为频域图;
2026-05-21 20:15:00
168
3
原创 opencv 胶路检测实战
halcon有例程讲解如何检测胶路缺陷,例如是否断胶、偏移、过窄、过宽等(apply_bead_inspection_model.hdev)思考:1.胶路一般有别去背景,可直接二值化提取;2.胶路检测轨迹复杂不固定,可手动绘制点集,分成N多直线段进行检测;3.胶路有检测范围,其实是围绕胶路宽度做判断;4.胶路宽度检测,可将N段直线段提取所有(或等距)的路径点,在路径点的法线方向寻找胶路边缘,一个路径点对应一对胶路边缘;5.判断逻辑,将没有找到胶路边缘的,说明偏移或断胶报错;
2026-05-13 19:30:00
403
原创 opencv 直线拟合
opencv自带有最小二乘法拟合直线,但遇到有干扰点的时候,由于最小二乘法是将所有点代入矩阵进行求解,最终误差平方和最小即是最优直线,此时干扰点就会带入误差,效果很差。随机采样一致算法,它是从一堆含干扰点的数据中,按照筛选条件划分为内点和外点,内点是组成模型的数据,外点是不适合模型的数据。以RANSAC直线拟合为例,如下图所示,首先在点集中随机选择两个点,求解它们构成的直线参数,再计算点集中剩余点到该直线的距离,距离小于设置的距离阈值的点为内点,统计内点个数;
2026-04-07 20:00:00
126
原创 opencv 轮廓内点集高速获取
获取opencv中轮廓的内部所有点,opencv有现成的函数判断点是否在轮廓内,但轮廓比较大的时候,直接调用pointPolygonTest速度会很慢。我们可以通过扫描线的方式逐行对轮廓点进行遍历,获取穿过某一行的两个x值,这两个x值之间的点就都在轮廓内。
2026-03-27 21:30:00
118
原创 曲线曲面拟合
本文介绍了三点抛物线拟合方法用于亚像素级极值定位。该方法通过取离散采样序列中的峰值点及其左右相邻点,用二次函数拟合三点坐标,推导出极值点偏移量公式。当三点共线时回退到中心点。文中提供了C++实现代码,适用于图像处理中求取亚像素坐标点(可分别进行x/y方向插值)。该方法也支持多点最小二乘拟合求解二次曲线系数。
2026-03-24 20:15:00
196
原创 opencv 多项式插值亚像素边缘点
本文介绍了亚像素边缘检测的理论与实现方法。首先通过梯度方向确定边缘点,然后在法线方向正反各取1像素距离的亚像素点,利用双线性插值计算梯度值,最终套用公式获得亚像素坐标。实验效果图展示了该方法能有效提升边缘定位精度。如需获取源码或技术交流可私信联系。
2026-03-13 21:30:00
78
原创 opencv 插值法亚像素边缘提取
本文提出了一种基于梯度方向的亚像素边缘检测方法。首先在已知像素级边缘点及其梯度方向的基础上,沿边缘法线方向的正反两侧各取1像素距离的亚像素点。然后通过双线性插值获取这两点的灰度值,比较确定暗侧和亮侧。将边缘点灰度视为边缘灰度,在暗亮两点间线性插值得到比例因子t,最终计算出亚像素坐标。文中给出了双线性插值的具体实现代码,包含边界处理、像素值获取和插值计算过程。该方法利用边缘附近的灰度线性分布特性,能够有效提高边缘定位精度。
2026-03-13 20:00:00
159
原创 opencv 灰度矩求亚像素
本文介绍了一种基于灰度矩的亚像素边缘检测方法。该方法通过计算窗口内的灰度矩统计量(包括一至三阶矩、方差和偏度),利用Tabatabai-Mitchell模型进行边缘定位。实现步骤包括:窗口提取与边界处理、灰度矩计算、边缘比例参数求解、牛顿迭代求归一化距离、法线方向确定以及亚像素坐标计算。该方法可有效提升边缘定位精度至亚像素级别,适用于高精度图像测量领域。文章提供了C++实现接口说明,包含窗口大小、标准差阈值等可调参数,并展示了实际检测效果图。
2026-03-13 18:45:00
108
原创 opencv不同焦深图片融合
本文提出一种基于梯度分析的图像融合方法,用于解决工业场景中多高度物体成像问题。该方法通过Sobel算子计算不同焦距拍摄图像的梯度值,识别各图像中最清晰区域,最终合成一张全清晰的图像。算法流程包括:梯度计算、降噪处理、最大值位置标记和图像合成。实验结果表明,该方法能有效整合多焦距图像的优势区域,生成各位置均清晰的合成图像,为工业检测提供完整视野。
2026-03-06 20:15:00
142
1
原创 opencv 亚像素轮廓提取
本文介绍了基于OpenCV的亚像素轮廓提取方法。针对工业相机像素有限的问题,提出通过高斯导数核计算梯度,结合非极大值抑制和滞后阈值获得像素边缘,再采用3×3领域二阶多项式拟合和Hessian矩阵计算亚像素偏移量,实现更高精度的轮廓检测。文末展示了检测效果图,并提供源码获取和技术交流途径。该方法有效提升了工业检测中的轮廓提取精度。
2026-03-06 17:19:00
136
原创 opencv 卡尺找圆
本文介绍了图像边缘检测的原理及圆形边缘查找的实现方法。边缘检测通过投影处理、微分处理、校正和亚像素处理四个步骤,稳定地识别图像中的明暗边界。在代码实现中,通过设置圆心坐标、半径等参数,使用卡尺工具在ROI区域内进行滤波、投影和曲线分析,结合亚像素拟合技术精确检测边缘位置。该方法适用于工业检测等场景,能有效应对光照变化带来的影响。文末展示了实际检测效果图,并提供了获取源码和技术交流的途径。
2026-03-05 21:30:00
347
原创 zernike矩亚像素边缘提取 opencv实现
Zernike矩的边缘检测方法基于以下思想:通过计算图像中每个像素邻域的Zernike矩,利用矩的旋转不变性来确定边缘的亚像素位置和方向。
2026-02-11 14:16:01
476
原创 opencv aruco码的生成和识别
以下代码为自己的测试过程,包括有选定aruco码的字典、生成aruco码、图像仿射投影变换、识别aruco码的参数设置、所有用到的参数保存yaml等。参考:https://www.cnblogs.com/yilangUAV/p/14436171.html。aruco码的周围得是白色,这样才可以找轮廓是找到aruco码,所有手动生成的码外面需要有一个白色轮廓。新版opencv4.7.0开始在主库中就有了aruco码的生成和识别库。要再详细的识别位姿什么的,还是需要到opencv_contrib中。
2025-11-21 16:17:34
341
原创 机器视觉之9点标定
这里说的9点标定是指的2D平面,不涉及3D的手眼标定范畴9点标定分相机固定还是相机移动两种情况(主要是区分标定时相机位置是否发生移动)
2025-11-13 11:59:18
481
转载 如何有效匹配镜头分辨率和相机分辨率
在机器视觉中,分辨率作为衡量镜头和相机的重要参数,已被大家熟知。但是,在实际组合应用中,大家知不知道要如何有效匹配镜头分辨率和相机分辨率呢?首先我们来了解镜头分辨率,及相机分辨率的概念。
2024-10-22 14:03:54
1498
原创 QT界面上显示图片,可缩放和绘制矩形ROI框
QGraphicsView、QGraphicsScene、QGraphicsPixmapItem、QGraphicsRectItem、QGraphicsTextItem
2024-03-31 15:12:53
1339
1
PCL拟合平面,vtk绘制效果不对
2025-11-10
QT5中QTCPsocket的stateChanged信号
2024-07-11
opencv cvtcolor 内存泄露
2023-08-02
DM码解码 dmtx库 opencv
2023-04-04
Linux中mono环境下c#调用dll
2022-09-29
C#窗体应用 跨平台部署
2022-09-16
TA创建的收藏夹 TA关注的收藏夹
TA关注的人
RSS订阅