- 博客(54)
- 收藏
- 关注
原创 记录bug :C++调用python 路径问题
Python import 是按sys.path从前往后找模块的。你用的是:append()👉 这会把你的路径加到最后面如果你的工程目录(比如当前 exe 目录、.、build目录)里已经有同名.py文件:Python 会优先导入“前面的那个”,完全不会走你新加的路径。
2026-04-17 11:03:36
13
原创 鱼眼矫正(防止忘记)
打脸系列,matlab 文档讲解很清楚,就是不看,想直接找源码实现,结果chatGPT 都在忽悠人玩,被搞了一个星期,之后就是问chatGPT, 一定懂原理,懂原理,搞懂底层。
2026-03-04 18:29:25
42
原创 图像扩大resize, 采用不同的方法,实现亚像素定位(转载放忘记)
将像素提升至亚像素级别,本质上并不是在硬件上增加更多的物理像素点,而是通过算法和信号处理技术,在已有的离散像素点之间进行插值或拟合,来估算出“虚拟”的、位于像素之间的点的值。亚像素技术的目标是通过算法估算像素之间过渡区域的颜色或亮度值,从而获取比单个像素更精细的图像信息。在工业视觉场景中,经常会考虑经济因素,从而在设备上比较保守,这就需要在算法上多下功夫。将像素信息提升至亚像素级别,就是工业视觉中一种较为常见且实用的方法。想象一下,你有一张由一个个像素格组成的图片,每个方格只有一个颜色值。
2026-02-06 17:30:38
41
原创 模板匹配的亚像素级优化(转载 树顶的巢)
第一步整数像素级匹配:在目标图像中滑动一个已知的模板(或小块),通过计算相关性(如互相关、平方差、归一化互相关等),找到一个位置,使得模板与图像该位置的子图最相似。第二步亚像素级拟合:在上述找到的整数峰值位置附近,提取一个小区域(例如3x3或5x5)的相关值(或匹配度量值,如相关系数)。它的峰值位置(u0,v0)就是整数像素级的匹配位置。其中,(x,y)是相对于峰值中心(0,0) 的局部坐标(即 x=u−u0,y=v−v0)。得到参数a,b,c,d,e后,代入前面的公式即可求得Δx,Δy。
2026-02-06 17:11:32
78
原创 cuda 安装记录
print("正在安装PyTorch CUDA 12.1版本...")print("✅ PyTorch CUDA 12.1安装成功!"""安装PyTorch及其相关库的CUDA 12.1版本"""print(f"❌ 安装失败: {e.stderr}")print("CUDA版本: 12.1")# 安装PyTorch CUDA 12.1版本。print("已安装组件:")
2026-02-02 18:28:22
77
原创 opencv 未知函数记录-estimateAffinePartial2D
是 OpenCV 中(不含透视、不含非均匀缩放)的核心函数,在里非常常见。
2026-01-06 11:42:38
451
原创 opencv 未知函数记录-detailEnhance
是 OpenCV,常用于让图像看起来更“清晰”“锐利”,但,而是。Pythonpython复制代码。
2026-01-06 11:36:06
387
原创 opencv 未知函数记录-edgePreservingFilter
是 OpenCV 里一个的滤波器,常用于去噪、HDR / tone-mapping 预处理、以及需要“磨皮但不糊边”的场景。
2026-01-06 11:29:25
241
原创 vector<cv::point2f>如何快速转成opencv mat
/ N×1, CV_32FC2(零拷贝)cv::Mat mat(points.size(), 2, CV_32F);
2025-12-31 15:20:27
393
原创 MATLAB 2018a 安装教程。
⑨打开安装文件夹(第⑤步)中设定的目录,在bin文件夹,发送到桌面快捷方式并打开。⑩离线激活,选择破解文件夹中的license_standalone.lic。⑪复制破解文件夹中2018a中的bin文件夹,粘贴到安装目录的根目录。⑤更改安装路径,建议改为 D:\MATLAB\R2017b,下一步。④使用crack文件夹下的readme.txt内的安装密钥。①解压压缩包,打开安装包文件夹,点击setup.exe。②选择使用文件安装密钥,下一步。③接收许可协议的条款,下一步。⑥选择安装的程序,选择下一步。
2025-12-25 09:58:26
411
原创 MATLAB相机标定入门:Camera Calibration工具包详解
(1)工具包安装:工具包为Camera Calibration for matlab,首先把calib文件复制到matlab安装目录toolbox下,并在matlab中设置解压的calib文件夹的路径设置到MATLAB里,具体为①在主页->环境->设置路径->选择工具箱路径并确定,然后②在主页->环境->预设->常规->工具箱路径缓存中点击更新工具箱路径缓存,并应用和确认。单击选中之后,下面的信息就会出现在命令行窗口,包括对应的点在第几张,角点坐标,误差等参数。这些映射是基于当前的内参和外参计算出来的。
2025-10-28 17:00:45
1260
原创 图像分割方法介绍
(如 Otsu 大津法):通过直方图分析,自动寻找一个最佳阈值,把前景与背景分开。:容易断裂,需要结合区域方法才能得到封闭的分割区域。:图像光照不均时,把图像分块分别确定阈值,更鲁棒。:最小割模型,将图像看作图,优化能量函数分割目标。:像素特征(灰度/颜色/纹理)聚类,分成若干区域。:非参数聚类,找到模式分布峰值作为分割区域。:考虑区域间相似性,得到更平衡的分割结果。:简单快速,适合前景背景对比明显的图像。:实例分割,能区分同类目标的不同实例。:精度高,鲁棒性强,能处理复杂背景。
2025-09-02 17:15:20
534
原创 python 日常学习记录
无穷范数(max(|x_i|))# 矩阵 Frobenius 范数。# L2 范数(欧几里得距离)# L1 范数(曼哈顿距离)
2025-08-29 17:05:02
200
原创 类间方差概念
无需人工设置阈值,尤其适用于具有双峰灰度直方图的图像(图像中有明显的前景和背景)。该算法通过遍历所有可能的阈值,计算对应的类间方差,并选择。指将一组数据划分成的不同部分。(不同类像素差异很大)。: 统计学中衡量数据离散程度的指标。: 寻找一个阈值,使得分割后的两部分。的阈值作为图像分割的最佳阈值。(同类像素很相似),或者说。: 一个衡量数据分类后。
2025-08-29 15:45:43
288
原创 外缺圆圆心检测
针对缺损圆是一个很好的思路,但是针对圆的边缘比较模糊需要精确定位的时候,用canny 来寻找轮廓是不是精度不够高,可以用hough 粗定位,然后,基于圆轮廓点的梯度精细定位,然后再用最小二乘拟合,或者ransc 方法拟合也能够去除噪音点的影响。
2025-08-29 10:41:43
198
原创 滤镜、偏振片、棱镜:提升视觉检测效果的三大法宝
通过使用多个棱镜,我们可以实现图像的90度翻转,从而捕捉到被检测物体的侧面图像。最终,经过这种处理后的图像,其特征更加突出,轮廓一目了然,极大提升了检测的精准度。尤其是对于一些金属、玻璃或其他高反光表面,我们往往会遇到这样的困扰:尽管相机能够捕捉到图像,但是光滑的表面反射了大量的环境光,导致图像中没有明显的特征轮廓。专业一点来说,滤镜可以过滤掉不需要的光谱成分,只允许特定波长的光通过,从而有效消除环境光的干扰。通过与偏光镜配合使用,我们可以调整偏光镜的旋钮,改变光线的偏振方向,从而实现对反光的有效抑制。
2025-08-15 11:11:54
406
原创 VR测量指标,转载于知乎
在透镜组的仿真中会经常看到CRA这一参数。CRA是指在镜头传感器一侧,可以聚焦到像素上的光线的最大角度,该角度处的像素响应度为零度角像素响应度的80%。传感器的像素点上设有微透镜,因此传感器也有CRA。一般的,镜头和传感器的CRA不超过±2°-3°,这是因为两者的CRA相差较大会出现照度下降(镜头CRA<传感器CRA)或偏色(镜头CRA>传感器CRA)的情况。如果无法使镜头和传感器的CRA的差在3°以内,那么镜头CRA<传感器CRA的情况优于镜头CRA>传感器CRA。附:zemax查看CRA的方法。
2025-07-02 13:57:18
1542
原创 图像质量测试方法
拍摄 ISO12233 分辨率卡斜边,提取边缘扩展函数 (ESF) → 计算 LSF → FFT 得到 MTF50、MTF10。:分析边缘多通道偏移量 → 评估 RGB 通道的 spatial misalignment。评估 VR 系统中的成像性能指标,确保最终用户获得清晰、舒适、真实的视觉体验。:拍摄网格图卡,拟合理想直线 → 计算最大/均方偏差。:记录成像系统中目标覆盖范围 → 几何反推角度。:cycles/pixel 或 lp/mm。:实际显示覆盖的水平/垂直视角。:平均 ΔE、最大 ΔE。
2025-06-30 09:46:22
741
原创 用remap 时有未经处理的异常: Microsoft C++ 异常: cv::Exception,位于内存位置 0x000000A8E359B5C0 处。
你在调用cv::remap时遇到了这个未处理异常:❌ Microsoft C++ 异常:,位于内存位置…这表示 OpenCV 的remap()函数抛出了错误,
2025-06-25 09:28:21
545
原创 Armadillo 实现 meshgrid
/ 列向量 [1, 2, ..., W]vec y = linspace<vec>(1, H, H);// 列向量 [1, 2, ..., H]mat X = repmat(x.t(), H, 1);// 每行是 x,大小 H×W。// 每列是 y,大小 H×W。// 转换为 OpenCV cv::Mat(CV_64F 类型)
2025-06-24 18:52:04
161
原创 armadillo vec 数据如何转为vector
/ 示例:1000 维随机向量。// Armadillo 向量 → std::vector。// 转换为 std::vector<double>通过以上方法,可以轻松实现 Armadillo 向量与。// 输出: 1 2 3 4。或 Armadillo 的。小数据量或需要灵活性时用。
2025-04-25 15:03:31
968
原创 armadillo 如何查找数据
/ 或直接 data.elem(mask)std::cout << "满足条件的值: " << filtered_data.t() << std::endl;std::cout << "筛选结果: " << result.t() << std::endl;std::cout << "原始数据: " << data.t() << std::endl;// 条件: -5 < 值 < 10。// 方法1: 直接逻辑索引。
2025-04-25 15:02:27
600
原创 opencv 连续计算与单步计算的区别
差异点sum(分步计算)sum1(连续运算)数据类型转换中间步骤可能截断整数乘法结果47表达式优化保持浮点精度78内存与计算路径多次内存分配和类型转换单次合并运算减少冗余步骤78适用场景需保留中间结果时高效率、高精度需求时若需结果一致,建议统一输入矩阵为浮点类型,并优先使用连续运算表达式78。
2025-04-17 15:45:58
417
原创 cv::resize 与cv::cuda::resize 如何保持结果一致
cv::resize(CPU版本) 和(GPU版本) 在默认情况下可能会产生微小的差异,主要原因包括:不同的实现算法浮点数计算的顺序差异硬件加速带来的精度差异// 输入图像// 下载结果// 比较结果std::cout << "最大差异: " << maxDiff << std::endl;
2025-04-17 11:13:30
479
Opencv棋盘格角点检测 findChessboardCornersSB最新代码参考文献
2024-02-01
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人
RSS订阅