- 博客(263)
- 资源 (3)
- 收藏
- 关注

原创 海康威视工业相机SDK二次开发(VS+Opencv+QT+海康SDK+C++)(二)
本文接上次的博客海康威视工业相机SDK二次开发(VS+Opencv+QT+海康SDK+C++)(一),上个博客中并未用到QT,本文介绍项目内容及源码,供大家参考。由于我的项目中是用海康相机作为拍照的一个中介,重点是在目标识别方向,请阅读源码时自动忽略。如果对目标识别感兴趣,可以参考我的YOLO系列https://blog.youkuaiyun.com/qq_45445740/category_9794819.html目录1.说明1.1 环境配置1.2 背景说明2.源码MvCamera.hmythread.
2021-02-28 11:47:47
24181
904

原创 海康威视工业相机SDK二次开发(VS+Opencv+QT+海康SDK+C++)(一)
最近在做一个项目,涉及到工业相机,需要对其进行二次开发。相机方面选择了海康威视,网上关于海康威视工业相机SDK的开发资料很少,自己也摸索了一段时间,请教大佬,终于有了些收获,记录下来,方面以后查阅。目录1.说明1.1软硬件相关配置1.1.1硬件选择1.1.2软件选择1.2关于安防相机与工业相机1.说明1.1软硬件相关配置1.1.1硬件选择工业相机我选择的是海康威视的,具体的参数如下:工业相机资料:https://c109334.hi1718.com/news/201831317343619.
2020-11-10 14:01:55
33409
64

原创 《Python神经网络编程》自己动手编写一个神经网络
最近在看一些经典论文,想要动手复现其中的代码,无奈自己水平过于低,总感觉对于神经网络的理解不够深入,于是想补一下相关的知识。便找到了《Python神经网络编程》这本书,若稍微有些基础看起来很快,看完之后给我的感觉是对于神经网络的基本知识、神经网络背后的核心思想有了更深的理解,及时记录下来,方便自己学习。首先附上这本书的PDF与相关资源链接:https://pan.baidu.com/s/1lcVimFBDDCYGTIi6xzxV_g提取码:oiv7...
2020-06-15 17:57:48
11330
14
原创 Ubuntu22.04系统安装Anaconda、CUDA和CUDNN
之前一直在Windows系统下使用Anaconda和CUDA加速,最近需要复现一个算法,文档里面有Linux系统conda构建环境的教程。本篇博文参考,记录自己安装的过程,便于以后需要。
2025-02-24 00:13:57
2789
2
原创 解决:Conda虚拟环境中未设置CUDA_HOME的问题
背景:我是Ubuntu22.04系统,最近在复现FoundationPose算法,按照README构建部署环境时,有一步一直卡住,看了下是未找到CUDA_HOME这个环境变量。网上搜了下这个错误,需要设置CUDA_HOME的环境变量路径,一般是在路径下。
2025-02-23 15:29:41
1912
原创 ARM系统源码编译OpenCV 4.10.0(包含opencv_contrib)
因项目部署在ARM系统上,需要编译一个arm版本的opencv-4.10.0(带opencv_contrib)版本。
2025-02-15 17:51:44
360
原创 Ubuntu22.04系统安装使用Docker
Docker 用于自动化应用程序的部署、扩展和管理。它通过容器化技术让应用能够在不同环境之间一致地运行,避免了传统部署方式中因不同系统配置导致的问题。
2025-02-15 11:36:24
3120
3
原创 Gitlab中如何进行仓库迁移
需求:之前有一个自己维护的新仓库A,现在需要将这个仓库提交并覆盖另一个旧的仓库B,需要保留A中所有的commit信息。
2025-02-08 15:00:00
1099
原创 对海康威视工业相机进行取图
@brief 采用超时机制获取一帧图片,SDK内部等待直到有数据时返回* @param handle [IN] 设备句柄* @param pData [IN][OUT] 图像数据接收指针* @param nDataSize [IN] 接收缓存大小* @param pstFrameInfo [IN][OUT] 图像信息结构体* @param nMsec [IN] 等待超时时间* @return 成功,返回MV_OK;失败,返回错误码。
2025-01-27 10:49:21
363
原创 C++内存泄露排查
内存泄漏是指程序动态分配的内存未能及时释放,导致系统内存逐渐耗尽,最终可能造成程序崩溃或性能下降。在C++中,内存泄漏通常发生在使用new或malloc等分配内存的操作时,但没有正确地使用delete或free来释放这块内存。在日常开发过程中,为了避免内存泄露,一般都用智能指针去自动管理内存,避免忘记释放。
2025-01-13 23:14:24
1586
原创 YOLOv5对象检测-从训练到量化部署
YOLOv5是历史上第一个Pytorch版本,之前的V1—V4都是C++的Darknet版本各模型介绍一般想要速度快就选择YOLOv5s,精度高选择YOLOv5l,YOLOv5x性价比不高,参数多了很多,速度也慢了很多但精度提升的不明显。Backbone (骨干网络)Backbone 负责提取图像的基本特征。在 YOLOv5 中,使用了一种基于 CSPDarknet(Cross Stage Partial Darknet)的主干网络,它是一种改进的卷积神经网络,用于提高网络的学习效率并减少冗余计算。
2024-12-29 12:10:06
162
原创 Intel RealSense D435 / D405使用和发布相机的ROS2话题
Linux系统intelRealSense相机SDK开发C++IntelRealSense-D405深度信息单位:0.1mm。IntelRealSense-D435深度信息单位:1mm。
2024-12-29 11:46:26
1091
2
原创 3D视觉坐标变换(位置和姿态)(像素坐标转换得到基于相机坐标系的坐标)
在图像处理中,我们经常得到目标的坐标是像素坐标,需要将其转换到相机坐标系下的实际物理坐标。使用场景:根据深度学习模型,已经完成了目标检测,使用3D相机,得到目标在图像中的像素坐标和深度信息,需要将。
2024-12-24 20:56:52
635
原创 ROS2中通过launch读取.yaml配置文件启动节点
环境:Ubuntu22.04,ROS2-humble通过修改.yaml配置文件中的参数,可以不用重新编译源代码进行软件调试。
2024-12-24 20:38:18
987
转载 CMake入门教程
CMake 允许开发者指定整个工程的编译流程,在根据编译平台,自动生成本地化的Makefile和工程文件,最后用户只需make蓝色虚线表示使用makefile构建项目的过程红色实线表示使用cmake构建项目的过程CMake优点:①跨平台②能够管理大型项目③简化编译构建过程和编译过程④可扩展:可以为 cmake 编写特定功能的模块,扩充 cmake 功能。
2024-12-24 15:19:19
139
原创 Ubuntu22.04系统下MVS运行海康威视工业相机
之前的开发环境是Ubuntu16.04,最近因项目需求换到了Ubuntu22.04系统,安装了ROS2-humble,重新记录下开发过程。
2024-12-17 23:43:20
1464
1
原创 C/C++多线程和线程同步
线程是轻量级的进程(LWP:light weight process),在Linux环境下线程的本质仍是进程。在计算机上运行的程序是一组指令及指令参数的组合,指令按照既定的逻辑控制计算机运行。操作系统会以进程为单位,分配系统资源,可以这样理解,进程是资源分配的最小单位,线程是操作系统调度执行的最小单位。
2024-12-15 23:00:17
1135
原创 ROS2-humble中指定OpenCV版本进行开发
本地是Ubuntu22.04系统,安装了ROS2-humble,看了下humble自带的OpenCV版本4.5.4,由于DNN模块读取.onnx格式的模型要用OpenCV4.7及以上的版本,于是编译了4.10.0的OpenCV,但开发ROS2节点时,虽然CMake中已经指定了OpenCV的依赖路径,但还是会依赖系统中自带的OpenCV版本。
2024-12-15 16:51:46
789
原创 【ChArUco Marker】标定板检测
ArUco标记和板非常有用,因为它们检测速度快且用途广泛。然而,ArUco标记的一个问题是,即使在应用亚像素精炼之后,其角位置的准确性也不是很高。相反,棋盘格图案的角点可以更准确地精炼,因为每个角点都被两个黑色方块包围。然而,寻找棋盘格图案不如寻找ArUco板那么通用:它必须完全可见,且不允许有遮挡。ChArUco试图结合这两种方法的优点:ArUco部分用于插值棋盘角的位置,因此它具有标记板的多功能性,因为它允许遮挡或部分视图。此外,由于插值的角属于棋盘,因此在亚像素精度方面非常准确。
2024-12-10 19:20:00
1337
原创 Ubuntu22.04系统源码编译OpenCV 4.10.0(包含opencv_contrib)
因项目需要使用不同版本的OpenCV,而本地的Ubuntu22.04系统装了ROS2自带OpenCV 4.5.4的版本,于是编译一个OpenCV 4.10.0(带opencv_contrib)版本,给特定的项目使用,这就不用换个设备后重新安装OpenCV 了,直接依赖编译好的包使用。
2024-12-04 17:51:56
2380
1
原创 视觉算法中常用代码整理
目录1.确定ROI区域左上角和右下角的像素坐标1.1 通过PhotoShop软件实现1.2 代码实现2.对ROI区域以外的部分进行模糊处理3.根据深度信息对图像进行背景模糊4.深度学习模型标签的格式转换4.1 xml格式转换txt4.2 实例分割seg——json格式转换txt4.3 目标检测——json格式转换txt4.4 将YOLO训练的.txt格式标注转换为.json格式5.YOLOv8模型推理源码5.1 Python:使用onnxruntime对.onnx格式的yolov8目标检测模型进行推理5.2
2024-12-01 10:46:10
110
原创 (四)3D视觉机器人的手眼标定(眼在手外)
3D视觉机器人指的是机器人通过3D相机提供的3D点云视觉信息,完成某些实际的功能。目标是将场景信息从相机坐标系变换至机械臂坐标系中,最终是获得相机到机械臂基座的空间变换矩阵。下面以眼在手外标定为例:上图中,相机④固定在工作空间中,标定板③被固定在机械臂末端②上,为了做手眼标定在末端上固定一个标定板。标定过程中标定板③和机械臂末端②固定位姿不变,由上图可知,相机④和机械臂基座①的相对位置不变,然后通过示教器控制机械臂带着标定板③。
2024-11-24 20:05:27
2178
原创 关于相机选型的一些参数说明
卷帘快门(Rolling Shutter)和全局快门(Global Shutter)是两种常见的摄像头快门类型,它们在图像采集时对时间的控制方式有所不同,影响着图像的拍摄效果和适用场景。卷帘快门 (Rolling Shutter)是一种逐行扫描的快门方式,在该模式下,图像的每一行是依次曝光的,而不是在同一时刻对整个图像进行曝光。传感器是一种二维图像传感器,每个像素对应于图像的一个点,传感器以“区域扫描”的方式一次性捕捉整个场景的图像。面阵传感器适合需要一次性捕捉整个图像的场景,如数码相机拍照、监控视频等。
2024-11-22 11:56:15
1732
原创 TensorRT——YOLOv8对象检测部署
它的意思是 np.bool 在当前版本的 NumPy 中已经被删除或者不再支持。NumPy 从版本 1.20 开始,弃用了 np.bool,并建议使用 bool 或者 np.bool_ 来替代。可以看到,降低numpy版本后其他的库会对numpy有版本要求,如果该环境只需要TensorRT推理那降低版本没问题,根本方法还是需要升级TensorRT版本或者修改代码去解决。可通过上面的代码加载和验证一个 ONNX 模型的有效性,如果模型有效,会直接返回,没有任何输出,就表示模型是有效的。格式(此过程耗时较长)
2024-11-20 09:12:40
241
原创 Python项目——生成工程的requirements.txt文件
之前开发通过CMake构建的C++项目,可以指定依赖库的版本,进行版本控制。最近有一个项目是Python代码编写的,需要生成requirements.txt文件来指定库的版本。
2024-11-19 20:49:30
607
原创 TensorRT安装——解决FileNotFoundError: Could not find: nvinfer.dll
CUDA和CUDNN的版本需要对应以本文为例:CUDA是11.3,CUDNN是8.2.1。
2024-11-18 17:56:23
790
3
原创 2.5D视觉——Aruco码定位检测
ArUco标记被广泛用来增加从二维世界映射到三维世界时的信息量,便于发现二维世界与三维世界之间的投影关系,从而实现姿态估计、相机矫正等等应用。
2024-11-18 09:04:53
1282
原创 数据分析——Python绘制实时的动态折线图
最近在做视觉应用开发,有个需求需要实时获取当前识别到的位姿点位是否有突变,从而确认是否是视觉算法的问题,发现Python的Matplotlib进行绘制比较方便。
2024-11-16 20:43:06
1205
原创 YOLOv8自定义对象检测、实例分割、目标跟踪从训练到部署
YOLOv8对象检测、实例分割、目标跟踪训练和部署,OpenVINO、TensorRT、Onnxruntime、OpenCV模型推理。
2024-11-03 21:47:50
254
原创 开关组件——功能快速迭代和OEM定制
可以利用 TOML 配置文件来管理软件功能的启用和禁用,从而为不同的用户提供个性化的定制。这样的实现不仅降低了维护成本,还提高了代码的灵活性和可重用性。根据不同用户的需求,可以简单地修改配置文件,而无需更改源代码。
2024-10-20 15:59:39
937
原创 解决关闭create_ap配置的无线网卡AP模式后,无法恢复到无线网卡的基础模式
配置热点模式之后,想再恢复之前的基础客户端模式,发现系统搜索不到无线网卡了。背景:Ubuntu22.04系统,想测试一下无线网卡AP模式的信号强度,通过。如果有这样的行,删除或注释掉它们,然后保存并退出。,各个设备的无线网卡名称不一样)处于 “显示无线网卡设备(如。” 状态,这通常意味着。
2024-10-13 12:23:11
461
原创 Ubuntu22.04环境下源码安装OpenCV 4.8.1(包含opencv_contrib-4.8.1)
Ubuntu22.04系统中源码安装OpenCV4.8.1
2024-10-11 22:40:34
1702
4
原创 将U盘作为启动项报错:Verifying shim SBAT data failed: Security Policy Violation
滑动条往下拉,可以看到。在BIOS设置中,将“
2024-09-24 20:42:40
5907
原创 OpenCV4特征匹配
因为每个特征点都具有标志着唯一身份和特点的描述子,因此特征点匹配其实就是在两个图像中寻找具有相似描述子的两个特征点。,就是指将从影像中提取的特征作为共轭实体,而将所提特征属性或描述参数(实际上是特征的特征,也可以认为是影像的特征)作为匹配实体,通过计算匹配实体之间的相似性测度以实现共轭实体配准的影像匹配方法。它使用第一组中的每个特征的描述子,与第二组中的所有特征描述子进行匹配,计算它们之间的差距,然后将最接近的一个匹配返回。虽然Harris角点具有旋转不变的特征,但缩放后,原来的角点有可能就检测不到了。
2024-08-20 23:13:01
1326
Linux实时内核5.15.137
2024-01-27
turbovnc-3.0.3-amd64.deb virtualgl-3.1-amd64.deb
2023-04-21
ubuntu16.04源码编译wireshark2.6.10
2022-06-21
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人