跳转到主要内容

基于傅里叶变换的图像配准

项目描述

Foureg

使用离散傅里叶变换进行图像配准。

给定两个图像,foureg 计算一个相似变换,将一个图像转换为另一个图像。

注意

这仍然处于WIP状态,并且接口可能会在没有通知的情况下更改

示例

该示例将使用用户定义的变换转换图像,然后使用 foureg 再次发现它。

import matplotlib.pyplot as plt
import numpy as np
from PIL import Image  # Not a dependency from this pa

from foureg import similarity, similarity_matrix, transform_img

# 1) Make up some transformation
transformation = similarity_matrix(1.2, 15, (40, 60))

# 2) Open the master image and transform it to generate the slave image
master = np.asarray(Image.open("./resources/examples/sample1.png"))
slave = transform_img(master, transformation)


# 3) Use foureg to recover the transformation
imreg_result = similarity(master, slave)
slave_transformed = transform_img(slave, imreg_result["transformation"])

4) Some plotting to verify everything is working
_, axs = plt.subplots(1, 5, figsize=(13, 8))
im_0 = axs[0].imshow(master)
plt.colorbar(im_0, ax=axs[0])
im_1 = axs[1].imshow(slave)
plt.colorbar(im_1, ax=axs[1])
im_2 = axs[2].imshow(slave_transformed)
plt.colorbar(im_2, ax=axs[2])
im_3 = axs[3].imshow(imreg_result["timg"])
plt.colorbar(im_3, ax=axs[3])
im_4 = axs[4].imshow(np.abs(imreg_result["timg"] - master))
plt.colorbar(im_4, ax=axs[4])

plt.show()

功能

  • 图像预处理选项(频率滤波,图像扩展)。
  • 揭示了底层选项(迭代,相位相关性滤波)。
  • 开源许可(3条款BSD)。

起源故事

这是一个基于 imreg_dft 的分支,出于以下目标:

  • 能够以矩阵形式返回最终变换,而不是分别返回角度、平移和缩放因子。原始代码在执行图像变换时进行了一些非常规的调整,这使得获得该矩阵变得非常困难。
  • 更好的性能,最终是Pytorch驱动的GPU实现
  • 更专注的代码库。这里的唯一目标是估计成对图像之间的相似变换。

致谢

该代码最初由美国加州大学欧文分校的Christoph Gohlke开发,后来由捷克布拉格技术大学的Matěj Týč进一步开发。没有他们,这个仓库将不存在。

项目详情


下载文件

下载适合您平台的文件。如果您不确定选择哪个,请了解更多关于安装包的信息。

源代码分发

foureg-0.1.0.tar.gz (16.0 kB 查看哈希)

上传时间 源代码

构建分发

foureg-0.1.0-py3-none-any.whl (17.1 kB 查看哈希)

上传时间 Python 3

支持者