Skip to content

xy200303/image_registration_tool

Repository files navigation

图像配准工具 - 使用说明

项目概述

image image

这是一个基于 PyQt6 的图像配准工具,用于红外图像和可见光图像的手动配准和批量处理。

技术栈

  • GUI框架: PyQt6
  • 图像处理: OpenCV (cv2)
  • 数值计算: NumPy
  • 数据存储: JSON
  • 文件操作: pathlib

安装依赖

pip install -r requirements.txt

运行程序

python image_registration_tool.py

功能特性

1. 图像加载

  • 加载红外目录: 选择包含红外图像的目录(支持多级目录结构)
  • 加载可见光目录: 选择包含可见光图像的目录(支持多级目录结构)
  • 加载结果目录: 选择保存配准参数的目录

支持的图像格式: .png, .jpg, .jpeg, .bmp

2. 模式选择

  • Global 模式: 使用全局参数,适用于批量处理
  • Manual 模式: 手动调整每张图像的参数

3. 图像导航

  • 上一张: 切换到上一张图像
  • 下一张: 切换到下一张图像
  • 保存参数: 保存当前图像的配准参数到 JSON 文件

4. 参数调整

偏移量控制

  • dx: X方向偏移量(像素)
  • dy: Y方向偏移量(像素)

缩放控制

  • ScaleX: X方向缩放比例(0.5x - 2.0x)
  • ScaleY: Y方向缩放比例(0.5x - 2.0x)

混合比例

  • Alpha: 混合比例(0.0 - 1.0)
    • 0.0: 只显示可见光图像
    • 1.0: 只显示红外图像
    • 0.5: 等比例混合显示

5. 键盘快捷键

Manual 模式下的快捷键

  • 方向键 ← → ↑ ↓: 移动红外图像
  • W: 水平放大
  • E: 水平缩小
  • A: 垂直缩小
  • D: 垂直放大

通用快捷键

  • + / =: 增加混合比例
  • -: 减少混合比例
  • S: 保存当前参数
  • Q / ESC: 退出程序

6. 鼠标控制

  • 拖拽: 在图像区域点击并拖拽可以移动红外图像

7. 参数保存

参数以 JSON 格式保存,文件名为图像文件名 + .json 扩展名。

JSON 格式示例:

{
  "dx": 10,
  "dy": -5,
  "scale_x": 1.05,
  "scale_y": 0.98
}

使用流程

  1. 加载图像目录

    • 点击"加载红外目录"按钮,选择红外图像目录
    • 点击"加载可见光目录"按钮,选择可见光图像目录
  2. 设置结果目录

    • 点击"加载结果目录"按钮,选择保存参数的目录
  3. 调整配准参数

    • 使用偏移量、缩放控件调整图像配准
    • 使用混合比例滑块调整显示效果
    • 使用键盘快捷键或鼠标拖拽进行快速调整
  4. 保存参数

    • 点击"保存参数"按钮或按 S 键保存当前参数
    • 切换图像时可以加载之前保存的参数
  5. 批量处理

    • 使用"上一张"/"下一张"按钮浏览所有图像
    • 为每张图像调整参数并保存

项目结构

JZ_data/
├── image_registration_tool.py    # 主程序文件
├── manual_registration.py         # 原始 OpenCV 版本
├── requirements.txt              # 依赖包列表
├── images/                       # 可见光图像目录
├── imagesIR/                     # 红外图像目录
└── results/                      # 参数保存目录(需创建)

注意事项

  1. 红外图像和可见光图像应具有相同的文件名
  2. 支持多级目录结构,程序会自动匹配相同相对路径的图像
  3. 参数文件会保存在结果目录中,与图像文件同名(扩展名为 .json)
  4. 在 Global 模式下,键盘快捷键只支持混合比例调整和退出
  5. 在 Manual 模式下,可以使用所有键盘快捷键进行参数调整

About

这是一个基于 PyQt6 的图像配准工具,用于红外图像和可见光图像的手动配准和批量处理。

Resources

Stars

Watchers

Forks

Packages

 
 
 

Contributors