工控编程吧

标题: 工业视觉halcon optimize_fft_speed函数介绍 [打印本页]

作者: qq263946146    时间: 2019-6-11 19:02
标题: 工业视觉halcon optimize_fft_speed函数介绍
0.write_fft_optimization_data( : : FileName : )
write_fft_optimization_data将使用optimize_fft_speed确定的用于优化FFT运行时的数据存储在FileName给出的文件中。
可以使用read_fft_optimization_data加载数据。


1.read_fft_optimization_data( : : FileName : )
read_fft_optimization_data从FileName 给出的文件中加载数据来优化FFT的运行时。
优化数据必须事先使用optimize_fft_speed确定,并且必须使用write_fft_optimization_data存储。
如果已为应用程序中使用的图像大小确定了存储的数据,则无需调用optimize_fft_speed。
应该注意的是,数据应该只在使用optimize_fft_speed确定数据的同一台机器上使用。
如果没有注意到这一点,那么运行时将不是最优的。
此外,应该注意的是,使用标准HALCON创建的优化数据不能与 Parallel HALCON一起使用,反之亦然。


read_fft_optimization_data影响以下使用FFT的操作符的运行时间:

fft_generic、fft_image、fft_image_inv、sfs_pentland、sfs_mod_lr、sfs_orig_lr。

2.serialize_fft_optimization_data( : : : SerializedItemHandle)
serialize_fft_optimization_data序列化用于优化用optimize_fft_speed确定的FFT运行时的数据
(有关序列化的基本原理,请参阅fwrite_serialized_item)。
write_fft_optimization_data在文件中写入的数据被转换为序列化项。
序列化的数据由句柄SerializedItemHandle返回,可以通过deserialize_fft_optimization_data反序列化。


3.deserialize_fft_optimization_data( : : SerializedItemHandle : )
反序列化由serialize_fft_optimization_data序列化的数据,用于优化FFT的运行时(有关序列化的基本原理,请参阅fwrite_serialized_item)。
序列化数据由句柄SerializedItemHandle定义。
优化数据必须事先使用optimize_fft_speed确定,并且必须使用serialize_fft_optimization_data序列化。
如果已为应用程序中使用的图像大小确定了序列化数据,则无需调用optimize_fft_speed。
注意,数据应该只在使用optimize_fft_speed确定数据的同一台机器上使用。否则,运行时将不是最优的。
还要注意,使用标准HALCON创建的优化数据不能与Parallel HALCON 一起使用,反之亦然。

deserialize_fft_optimization_data影响以下使用FFT的操作符的运行时间:
fft_generic、fft_image、fft_image_inv、sfs_pentland、sfs_mod_lr、sfs_orig_lr。


4.optimize_fft_speed( : : Width, Height, Mode : )
optimize_fft_speed确定了一种方法,该方法可以为大小为Width*Height的图像实现FFT的最佳运行时间。
为一个图像大小确定的数据不影响用于其他图像大小的方法。
因此,可以使用Width, Height的不同值多次调用optimize_fft_speed,从而为应用程序中使用的所有图像大小获得最佳运行时间。
参数Mode 决定了搜索最快速方法的彻底性。


对于模式='Standard',使用快速搜索,通常需要几秒钟。
因此,该方法确定的运行时间非常好,并不总是最佳的。
对于模式='patient',将执行更彻底的搜索,这通常需要几秒钟,在大多数情况下会得到最佳运行时间。
对于模式='exhaustive',将执行详尽搜索,通常需要几分钟时间,并且始终会得到最佳运行时间。
在大多数应用程序中,Mode = 'standard'会得到 FFT运行时和搜索最佳运行时所需的时间之间的最佳折衷。
使用optimize_fft_speed确定的数据可以用write_fft_optimization_data保存,也可以用read_fft_optimization_data加载。


请注意,此优化是针对调用操作符的特定计算机执行的。结果不适合在其他计算机上传输和使用,除非它们具有相同的硬件和软件配置(包括驱动程序版本)。
optimize_fft_speed影响以下使用FFT的操作符的运行时:
fft_generic、fft_image、fft_image_inv、photometric_stereo、sfs_pentland、sfs_mod_lr、sfs_orig_lr。


5.fft_generic(Image : ImageFFT : Direction, Exponent, Norm, Mode, ResultType : )
FFT-Generic计算输入图像Image 的快速傅立叶变换。由于文献中存在几种正向和反向转换的定义,因此此运算符允许用户选择最方便的定义。
傅立叶变换的一般定义如下:
(, 下载次数: 0)