littlebot
Published on 2025-04-09 / 0 Visits
0

【源码】基于OpenCV的C臂X光设备校准项目

项目简介

本项目利用OpenCV库对C臂X光设备进行校准。通过处理设备拍摄的校准幻影图像,计算相机的内参、畸变系数等参数,实现更精准的成像。

项目的主要特性和功能

  1. 支持处理C臂X光设备原始图像,可采用裁剪后图像校准,排除无关信息干扰。
  2. 基于OpenCV库进行图像处理与特征提取,利用cv::findCirclesGrid函数检测幻影图像圆形网格中心坐标。
  3. 依据已知3D点及其对应的2D像素位置,使用calibrateCamera方法计算相机内参、畸变系数、旋转向量和平移向量。
  4. 提供命令行参数配置,便于用户按需调整校准过程,如指定棋盘尺寸、使用帧数、输出参数文件名等。
  5. 支持手动或使用imagelist_creator函数创建图像列表文件。
  6. 可尝试不同配置参数,对比重投影误差,验证校准参数有效性。

安装使用步骤

前提条件

本项目代码已在Ubuntu 18.04系统测试,其他平台也可编译。需安装OpenCV 3.2.0版本,安装说明可参考:https://docs.opencv.org/3.2.0/d7/d9f/tutorial_linux_install.html 。

编译项目

  1. 复制项目仓库。
  2. 在项目根目录下执行以下命令: bash mkdir build cd build cmake.. make 编译完成后,当前文件夹会生成可执行文件x_ray_calibration

校准步骤

  1. 选择裁剪后的图像(位于uncalibrated文件夹)进行校准,去除原始图像中患者相关信息的额外边框。
  2. 定义真实世界坐标:利用校准幻影(由亚克力板和不锈钢球组成)确定3D点的世界坐标,所有点在XY平面,Z坐标为0。
  3. 查找幻影的2D坐标:使用OpenCV的cv::findCirclesGrid函数计算幻影图像中圆形网格中心的2D像素位置。
  4. 相机校准:将3D点的世界坐标和所有图像中的2D位置传入OpenCV的calibrateCamera方法进行校准。
  5. 可参考help()函数了解相机校准示例和命令行参数说明。例如,使用以下命令创建图像列表文件并进行校准: bash imagelist_creator image_list.xml *.png calibration -w=4 -h=5 -s=0.025 -o=camera.yml -op -oe image_list.xml 其中,image_list.xml为包含图像文件名列表的文件,可手动创建或使用imagelist_creator生成。

下载地址

点击下载 【提取码: 4003】【解压密码: www.makuang.net】