correlation_fftcorrelation_fftCorrelationFftCorrelationFftcorrelation_fft相关快速傅里叶变换(算子)
名称
correlation_fftcorrelation_fftCorrelationFftCorrelationFftcorrelation_fft — 在频域内将一个图像与另一个图像的复共轭相乘。
签名
描述
在计算两幅图像之间的相关性时,correlation_fftcorrelation_fftCorrelationFftCorrelationFftCorrelationFftcorrelation_fft 会将第一幅图像
ImageFFT1ImageFFT1ImageFFT1ImageFFT1imageFFT1image_fft1 的傅里叶变换与第二幅图像 ImageFFT2ImageFFT2ImageFFT2ImageFFT2imageFFT2image_fft2 的傅里叶变换的复共轭相乘。
根据相关性定理,可在像素空间中通过三步获得两幅图像的非归一化相关性:
-
使用傅里叶变换将图像转换至频率空间(参见 fft_genericfft_genericFftGenericFftGenericFftGenericfft_generic 等)。
-
将其中一幅转换后的图像与另一幅转换后图像的复共轭进行像素级乘法运算。
-
使用逆傅里叶变换将结果转换回像素空间(参见 fft_genericfft_genericFftGenericFftGenericFftGenericfft_generic 等)。
算子 correlation_fftcorrelation_fftCorrelationFftCorrelationFftCorrelationFftcorrelation_fft 用于执行第二步,即对 ImageFFT1ImageFFT1ImageFFT1ImageFFT1imageFFT1image_fft1 与 ImageFFT2ImageFFT2ImageFFT2ImageFFT2imageFFT2image_fft2 的复共轭进行像素级乘法运算。
需要注意的是,为在空间域实现正确的关联缩放,正向变换(步骤1)必须使用 NormNormNormNormnormnorm = 'none'"none""none""none""none""none" 的 fft_genericfft_genericFftGenericFftGenericFftGenericfft_generic 或 rft_genericrft_genericRftGenericRftGenericRftGenericrft_generic 算子,而逆向变换(步骤3)则需使用 NormNormNormNormnormnorm = 'n'"n""n""n""n""n" 的 fft_genericfft_genericFftGenericFftGenericFftGenericfft_generic 或 rft_genericrft_genericRftGenericRftGenericRftGenericrft_generic 算子。若 ImageFFT1ImageFFT1ImageFFT1ImageFFT1imageFFT1image_fft1 和 ImageFFT2ImageFFT2ImageFFT2ImageFFT2imageFFT2image_fft2 包含相同数量的图像,则对应图像进行成对乘积运算。否则 ImageFFT2ImageFFT2ImageFFT2ImageFFT2imageFFT2image_fft2 必须仅包含单张图像,此时需
ImageFFT1ImageFFT1ImageFFT1ImageFFT1imageFFT1image_fft1 中的每张图像分别与 ImageFFT2ImageFFT2ImageFFT2ImageFFT2imageFFT2image_fft2 进行乘积运算。
注意
滤波操作始终作用于整个图像,即忽略图像的域。
执行信息
- 多线程类型:可重入(与非独占算子并行运行)。
- 多线程作用域:全局(可从任何线程调用)。
- 在元组级别上自动并行化。
- 在通道级别上自动并行化。
参数
ImageFFT1ImageFFT1ImageFFT1ImageFFT1imageFFT1image_fft1 (输入对象) (multichannel-)image(-array) → objectHImageHObjectHImageHobject (complex)
傅里叶变换后的输入图像 1。
ImageFFT2ImageFFT2ImageFFT2ImageFFT2imageFFT2image_fft2 (输入对象) (multichannel-)image(-array) → objectHImageHObjectHImageHobject (complex)
傅里叶变换后的输入图像 2。
元素数量:
ImageFFT2 == ImageFFT1 || ImageFFT2 == 1
ImageCorrelationImageCorrelationImageCorrelationImageCorrelationimageCorrelationimage_correlation (输出对象) image(-array) → objectHImageHObjectHImageHobject * (complex)
频域结果。
示例(HDevelop)
* Compute the auto-correlation of an image.
get_image_size(Image,Width,Height)
rft_generic(Image,ImageFFT,'to_freq','none','complex',Width)
correlation_fft(ImageFFT,ImageFFT,Correlation)
rft_generic(Correlation,AutoCorrelation,'from_freq','n','real',Width)
结果
correlation_fftcorrelation_fftCorrelationFftCorrelationFftCorrelationFftcorrelation_fft 在所有参数正确时返回 2 (H_MSG_TRUE)。当输入为空时,可设置行为通过算子 set_system(::'no_object_result',<Result>:)set_system("no_object_result",<Result>)SetSystem("no_object_result",<Result>)SetSystem("no_object_result",<Result>)SetSystem("no_object_result",<Result>)set_system("no_object_result",<Result>)。如有必要,则抛出异常。
可能的前趋
fft_genericfft_genericFftGenericFftGenericFftGenericfft_generic,
fft_imagefft_imageFftImageFftImageFftImagefft_image,
rft_genericrft_genericRftGenericRftGenericRftGenericrft_generic
可能的后继
fft_genericfft_genericFftGenericFftGenericFftGenericfft_generic,
fft_image_invfft_image_invFftImageInvFftImageInvFftImageInvfft_image_inv,
rft_genericrft_genericRftGenericRftGenericRftGenericrft_generic
替代
phase_correlation_fftphase_correlation_fftPhaseCorrelationFftPhaseCorrelationFftPhaseCorrelationFftphase_correlation_fft
模块
基础