项目简介
本项目利用OpenCV库对C臂X光设备进行校准。通过处理设备拍摄的校准幻影图像,计算相机的内参、畸变系数等参数,实现更精准的成像。
项目的主要特性和功能
- 支持处理C臂X光设备原始图像,可采用裁剪后图像校准,排除无关信息干扰。
- 基于OpenCV库进行图像处理与特征提取,利用
cv::findCirclesGrid
函数检测幻影图像圆形网格中心坐标。 - 依据已知3D点及其对应的2D像素位置,使用
calibrateCamera
方法计算相机内参、畸变系数、旋转向量和平移向量。 - 提供命令行参数配置,便于用户按需调整校准过程,如指定棋盘尺寸、使用帧数、输出参数文件名等。
- 支持手动或使用
imagelist_creator
函数创建图像列表文件。 - 可尝试不同配置参数,对比重投影误差,验证校准参数有效性。
安装使用步骤
前提条件
本项目代码已在Ubuntu 18.04系统测试,其他平台也可编译。需安装OpenCV 3.2.0版本,安装说明可参考:https://docs.opencv.org/3.2.0/d7/d9f/tutorial_linux_install.html 。
编译项目
- 复制项目仓库。
- 在项目根目录下执行以下命令:
bash mkdir build cd build cmake.. make
编译完成后,当前文件夹会生成可执行文件x_ray_calibration
。
校准步骤
- 选择裁剪后的图像(位于
uncalibrated
文件夹)进行校准,去除原始图像中患者相关信息的额外边框。 - 定义真实世界坐标:利用校准幻影(由亚克力板和不锈钢球组成)确定3D点的世界坐标,所有点在XY平面,Z坐标为0。
- 查找幻影的2D坐标:使用OpenCV的
cv::findCirclesGrid
函数计算幻影图像中圆形网格中心的2D像素位置。 - 相机校准:将3D点的世界坐标和所有图像中的2D位置传入OpenCV的
calibrateCamera
方法进行校准。 - 可参考
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】