skimage.registration
#
粗到细的光流估计器。 |
|
粗到细的光流估计器。 |
|
通过互相关进行高效的亚像素图像平移配准。 |
- skimage.registration.optical_flow_ilk(reference_image, moving_image, *, radius=7, num_warp=10, gaussian=False, prefilter=False, dtype=<class 'numpy.float32'>)[source]#
粗到细的光流估计器。
迭代 Lucas-Kanade (iLK) 求解器应用于图像金字塔的每个级别。iLK [1] 是一种快速且稳健的 TVL1 算法替代方案,尽管在渲染平面表面和物体边界方面精度较低(参见 [2])。
- 参数:
- reference_imagendarray,形状 (M, N[, P[, …]])
序列中的第一个灰度图像。
- moving_imagendarray,形状 (M, N[, P[, …]])
序列中的第二个灰度图像。
- radiusint,可选
每个像素周围考虑的窗口半径。
- num_warpint,可选
moving_image 变形次数。
- gaussianbool,可选
如果为 True,则使用高斯核进行局部积分。否则,使用均匀核。
- prefilterbool,可选
是否在每次图像变形前预滤波估计的光流。当为 True 时,沿每个轴应用窗口大小为 3 的中值滤波器。这有助于去除潜在的异常值。
- dtypedtype,可选
输出数据类型:必须是浮点数。与双精度相比,单精度可以提供良好的结果并节省内存使用量和计算时间。
- 返回值:
- flowndarray,形状 (reference_image.ndim, M, N[, P[, …]])
每个轴的估计光流分量。
注释
实现的算法在 [1] 的**表 2** 中进行了描述。
不支持彩色图像。
参考文献
[1] (1,2)Le Besnerais, G. & Champagnat, F. (2005, September). Dense optical flow by iterative local window registration. In IEEE International Conference on Image Processing 2005 (Vol. 1, pp. I-137). IEEE. DOI:10.1109/ICIP.2005.1529706
[2]Plyer, A., Le Besnerais, G. & Champagnat, F. (2016). Massively parallel Lucas Kanade optical flow for real-time video processing applications. Journal of Real-Time Image Processing, 11(4), 713-730. DOI:10.1007/s11554-014-0423-0
示例
>>> from skimage.color import rgb2gray >>> from skimage.data import stereo_motorcycle >>> from skimage.registration import optical_flow_ilk >>> reference_image, moving_image, disp = stereo_motorcycle() >>> # --- Convert the images to gray level: color is not supported. >>> reference_image = rgb2gray(reference_image) >>> moving_image = rgb2gray(moving_image) >>> flow = optical_flow_ilk(moving_image, reference_image)
使用光流进行配准
- skimage.registration.optical_flow_tvl1(reference_image, moving_image, *, attachment=15, tightness=0.3, num_warp=5, num_iter=10, tol=0.0001, prefilter=False, dtype=<class 'numpy.float32'>)[source]#
粗到细的光流估计器。
TV-L1 求解器应用于图像金字塔的每个级别。TV-L1 是 Zack 等人提出的用于光流估计的流行算法 [1],在 [2] 中进行了改进,并在 [3] 中进行了详细介绍。
- 参数:
- reference_imagendarray,形状 (M, N[, P[, …]])
序列中的第一个灰度图像。
- moving_imagendarray,形状 (M, N[, P[, …]])
序列中的第二个灰度图像。
- attachmentfloat,可选
附着参数(\(\lambda\) 在 [1] 中)。此参数越小,返回的结果越平滑。
- tightnessfloat,可选
紧致参数(\(\theta\) 在 [1] 中)。它应该具有较小的值,以保持附着和正则化部分的对应关系。
- num_warpint,可选
moving_image 变形次数。
- num_iterint,可选
不动点迭代次数。
- tolfloat,可选
基于 (u, v) 的两个连续值之间的 L² 距离用作停止准则的容差。
- prefilterbool,可选
是否在每次图像变形前预滤波估计的光流。当为 True 时,沿每个轴应用窗口大小为 3 的中值滤波器。这有助于去除潜在的异常值。
- dtypedtype,可选
输出数据类型:必须是浮点数。与双精度相比,单精度可以提供良好的结果并节省内存使用量和计算时间。
- 返回值:
- flowndarray,形状 (image0.ndim, M, N[, P[, …]])
每个轴的估计光流分量。
注释
不支持彩色图像。
参考文献
[1] (1,2,3)Zach, C., Pock, T. & Bischof, H. (2007, September). A duality based approach for realtime TV-L 1 optical flow. In Joint pattern recognition symposium (pp. 214-223). Springer, Berlin, Heidelberg. DOI:10.1007/978-3-540-74936-3_22
[2]Wedel, A., Pock, T., Zach, C., Bischof, H. & Cremers, D. (2009). An improved algorithm for TV-L 1 optical flow. In Statistical and geometrical approaches to visual motion analysis (pp. 23-45). Springer, Berlin, Heidelberg. DOI:10.1007/978-3-642-03061-1_2
[3]Pérez, J. S., Meinhardt-Llopis, E. & Facciolo, G. (2013). TV-L1 optical flow estimation. Image Processing On Line, 2013, 137-150. DOI:10.5201/ipol.2013.26
示例
>>> from skimage.color import rgb2gray >>> from skimage.data import stereo_motorcycle >>> from skimage.registration import optical_flow_tvl1 >>> image0, image1, disp = stereo_motorcycle() >>> # --- Convert the images to gray level: color is not supported. >>> image0 = rgb2gray(image0) >>> image1 = rgb2gray(image1) >>> flow = optical_flow_tvl1(image1, image0)
使用光流进行配准
- skimage.registration.phase_cross_correlation(reference_image, moving_image, *, upsample_factor=1, space='real', disambiguate=False, reference_mask=None, moving_mask=None, overlap_ratio=0.3, normalization='phase')[source]#
通过互相关进行高效的亚像素图像平移配准。
此代码在极短的计算时间内以减少的内存需求提供了与 FFT 上采样互相关相同的精度。它通过 FFT 获得互相关峰值的初始估计,然后通过使用矩阵乘法 DFT [1]仅在上采样该估计值的小邻域中对位移估计进行细化。
- 参数:
- reference_image数组
参考图像。
- moving_image数组
要配准的图像。必须与
reference_image
具有相同的维度。- upsample_factorint,可选
上采样因子。图像将被配准到像素的
1 / upsample_factor
之内。例如upsample_factor == 20
表示图像将在像素的 1/20 之内配准。默认为 1(不上采样)。如果reference_mask
或moving_mask
中的任何一个不为 None,则不使用。- space字符串,为“real”或“fourier”之一,可选
定义算法如何解释输入数据。“real”表示数据将进行 FFT 以计算相关性,而“fourier”数据将绕过输入数据的 FFT。不区分大小写。如果
reference_mask
或moving_mask
中的任何一个不为 None,则不使用。- disambiguatebool
此函数返回的位移仅在模图像形状下准确,这是由于傅里叶变换的周期性。如果此参数设置为
True
,则会针对每个可能的位移计算真实空间互相关,并返回重叠区域内互相关最高的位移。- reference_maskndarray
用于
reference_image
的布尔掩码。掩码应在有效像素上评估为True
(或 1)。reference_mask
应与reference_image
具有相同的形状。- moving_maskndarray 或 None,可选
用于
moving_image
的布尔掩码。掩码应在有效像素上评估为True
(或 1)。moving_mask
应与moving_image
具有相同的形状。如果为None
,则将使用reference_mask
。- overlap_ratiofloat,可选
图像之间允许的最小重叠比率。对应于低于此阈值的重叠比率的平移的相关性将被忽略。较低的 overlap_ratio 会导致较小的最大平移,而较高的 overlap_ratio 会导致对由于掩码图像之间的小重叠而导致的虚假匹配具有更大的鲁棒性。仅当
reference_mask
或moving_mask
中的任何一个不为 None 时使用。- normalization{“phase”, None}
应用于互相关运算的归一化类型。当提供掩码(reference_mask 和 moving_mask)时,此参数未使用。
- 返回值:
- shiftndarray
将
moving_image
与reference_image
配准所需的平移向量(以像素为单位)。轴顺序与输入数组的轴顺序一致。- errorfloat
reference_image
和moving_image
之间平移不变的归一化均方根误差。对于掩码互相关,此误差不可用,并返回NaN。- phasedifffloat
两个图像之间的全局相位差(如果图像是非负的,则应为零)。对于掩码互相关,此相位差不可用,并返回NaN。
注释
使用互相关来估计图像平移的历史悠久,至少可以追溯到[2]。“相位相关”方法(由
normalization="phase"
选择)首次在[3]中提出。出版物[1]和[2]使用未归一化的互相关(normalization=None
)。哪种归一化形式更好取决于应用。例如,相位相关方法在不同照明条件下配准图像方面效果很好,但对噪声的鲁棒性不强。在高噪声情况下,可能更倾向于使用未归一化方法。参考文献
[1] (1,2)Manuel Guizar-Sicairos、Samuel T. Thurman 和 James R. Fienup,“高效的亚像素图像配准算法”,光学快报 33,156-158 (2008)。DOI:10.1364/OL.33.000156
[2] (1,2)P. Anuta,使用快速傅里叶变换技术的多分光和多时相数字图像的空间配准,IEEE 地球科学电子学报,第 8 卷,第 4 期,第 353-368 页,1970 年 10 月。DOI:10.1109/TGE.1970.271435。
[3]C. D. Kuglin D. C. Hines。相位相关图像对齐方法,IEEE 国际控制论与系统会议论文集,第 163-165 页,美国纽约,1975 年,第 163-165 页。
[4]James R. Fienup,“图像重建的不变误差度量”,光学快报 36,8352-8357 (1997)。DOI:10.1364/AO.36.008352
[5]Dirk Padfield。傅里叶域中的掩码对象配准。IEEE 图像处理汇刊,第 21 卷(5 期),第 2706-2718 页(2012 年)。DOI:10.1109/TIP.2011.2181402
[6]D. Padfield。“掩码 FFT 配准”。在计算机视觉和模式识别论文集中,第 2918-2925 页(2010 年)。DOI:10.1109/CVPR.2010.5540032