FFTハンドルの有効性チェック
Namespace: fvalgcliAssembly: fvalgcli (in fvalgcli.dll) Version: 3.1.0.0 (3.1.0.11)
Syntax
C# |
---|
public static int fnFIE_fft_check_spec( FHANDLE hFFT, int iWidth, int iHeight, int iDirection, int iSignalDataType, int iFourierDataType ) |
Visual Basic |
---|
Public Shared Function fnFIE_fft_check_spec ( hFFT As FHANDLE, iWidth As Integer, iHeight As Integer, iDirection As Integer, iSignalDataType As Integer, iFourierDataType As Integer ) As Integer |
Parameters
- hFFT
- Type: fvalgcli..::..FHANDLE
既存FFTハンドル
- iWidth
- Type: System..::..Int32
1次元FFTの場合はデータ長を入力。2次元FFTの場合は画像幅を入力。
- iHeight
- Type: System..::..Int32
1次元FFTの場合は0を入力。2次元FFTの場合は画像高さを入力。
- iDirection
- Type: System..::..Int32
実行するフーリエ変換の方向。 f_fft_direction を参照して下さい。
- iSignalDataType
- Type: System..::..Int32
時間領域データの形式。 f_fft_data_type を参照して下さい。
- iFourierDataType
- Type: System..::..Int32
周波数領域データの形式。 f_fft_data_type を参照して下さい。
Return Value
Type: Int32以下のエラーコードを返します。
エラーコード:
f_err | 内容 |
---|---|
F_ERR_NONE | 正常終了 |
F_ERR_INVALID_OBJECT | hFFT が IntPtr.Zero |
F_ERR_INVALID_PARAM | パラメータ不正
|
F_ERR_FFT_INVALID_SPEC | 既存FFTハンドルは指定された条件のFFTに適用できない |
F_ERR_NO_LICENCE | ライセンスエラー、または未初期化エラー |
Examples
C# | Copy |
---|---|
// $Revision: 1.1 $ using System; using System.Collections.Generic; using System.Text; using fvalgcli; namespace TC { public partial class FIE { /// <summary> /// FFTハンドルの有効性チェック. /// </summary> [FvPluginExecute] public void fnFIE_fft_check_spec() { int status = (int)f_err.F_ERR_NONE; FHANDLE hTmp = FHANDLE.Zero; FHANDLE hFFT_1D = FHANDLE.Zero; FHANDLE hFFT_2D = FHANDLE.Zero; int width = 0; int height = 0; int type = 0; int channels = 0; int iOrder = 5; f_fft_direction iDirection = f_fft_direction.F_FFT_FORWARD; f_fft_normalize_type iNormalization = f_fft_normalize_type.F_FFT_DIV_BY_SQRTN; f_fft_data_type iSignalDataType_1D = f_fft_data_type.F_1D_FFT_FCOMPLEX; f_fft_data_type iFourierDataType_1D = f_fft_data_type.F_1D_FFT_FCOMPLEX; f_fft_data_type iSignalDataType_2D = f_fft_data_type.F_2D_FFT_REAL; f_fft_data_type iFourierDataType_2D = f_fft_data_type.F_2D_FFT_DOUBLEC; try { // 1次元FFT の場合. { // 1次元FFT ハンドルの初期化. status = api.fnFIE_fft_1D_alloc(ref hFFT_1D, iOrder, iDirection, iNormalization, iSignalDataType_1D, iFourierDataType_1D); Assert.IsTrue(status == (int)f_err.F_ERR_NONE, "エラーが発生しました。({0})", (f_err)status); // 1次元FFT ハンドルの有効性チェック. status = api.fnFIE_fft_check_spec(hFFT_1D, (int)Math.Pow(2, iOrder), 0, (int)iDirection, (int)iSignalDataType_1D, (int)iFourierDataType_1D); Assert.IsTrue(status == (int)f_err.F_ERR_NONE, "fnFIE_fft_check_spec(1次元FFT ハンドル):エラーが発生しました。({0})", (f_err)status); } // 2次元FFT の場合. { // 入力画像読み込み. status = api.fnFIE_load_img_file(TestImageDir + "/testdata/lena512.bmp", ref hTmp, f_color_img_type.F_COLOR_IMG_TYPE_UC8); Assert.IsTrue(hTmp != FHANDLE.Zero, "hTmp が異常です."); //入力画像情報取得. width = api.fnFIE_img_get_width(hTmp); height = api.fnFIE_img_get_height(hTmp); type = api.fnFIE_img_get_type(hTmp); channels = api.fnFIE_img_get_channels(hTmp); // 2次元FFT ハンドルの初期化. status = api.fnFIE_fft_2D_alloc(ref hFFT_2D, width, height, iDirection, iNormalization, iSignalDataType_2D, iFourierDataType_2D); Assert.IsTrue(status == (int)f_err.F_ERR_NONE, "fnFIE_fft_2D_alloc: エラーが発生しました。({0})", (f_err)status); // 2次元FFT ハンドルの有効性チェック. status = api.fnFIE_fft_check_spec(hFFT_2D, width, height, (int)iDirection, (int)iSignalDataType_2D, (int)iFourierDataType_2D); Assert.IsTrue(status == (int)f_err.F_ERR_NONE, "fnFIE_fft_check_spec(2次元FFT ハンドル):エラーが発生しました。({0})", (f_err)status); } } finally { // オブジェクトの開放. hTmp.Dispose(); hFFT_1D.Dispose(); hFFT_2D.Dispose(); } } } } |
Visual Basic | Copy |
---|---|
' $Revision: 1.1 $ Imports System.Collections.Generic Imports System.Text Imports fvalgcli Public Partial Class FIE ''' <summary> ''' FFTハンドルの有効性チェック. ''' </summary> <FvPluginExecute> _ Public Sub fnFIE_fft_check_spec() Dim status As Integer = CInt(f_err.F_ERR_NONE) Dim hTmp As FHANDLE = FHANDLE.Zero Dim hFFT_1D As FHANDLE = FHANDLE.Zero Dim hFFT_2D As FHANDLE = FHANDLE.Zero Dim width As Integer = 0 Dim height As Integer = 0 Dim type As Integer = 0 Dim channels As Integer = 0 Dim iOrder As Integer = 5 Dim iDirection As f_fft_direction = f_fft_direction.F_FFT_FORWARD Dim iNormalization As f_fft_normalize_type = f_fft_normalize_type.F_FFT_DIV_BY_SQRTN Dim iSignalDataType_1D As f_fft_data_type = f_fft_data_type.F_1D_FFT_FCOMPLEX Dim iFourierDataType_1D As f_fft_data_type = f_fft_data_type.F_1D_FFT_FCOMPLEX Dim iSignalDataType_2D As f_fft_data_type = f_fft_data_type.F_2D_FFT_REAL Dim iFourierDataType_2D As f_fft_data_type = f_fft_data_type.F_2D_FFT_DOUBLEC Try ' 1次元FFT の場合. If True Then ' 1次元FFT ハンドルの初期化. status = api.fnFIE_fft_1D_alloc(hFFT_1D, iOrder, iDirection, iNormalization, iSignalDataType_1D, iFourierDataType_1D) Assert.IsTrue(status = CInt(f_err.F_ERR_NONE), "エラーが発生しました。({0})", CType(status, f_err)) ' 1次元FFT ハンドルの有効性チェック. status = api.fnFIE_fft_check_spec(hFFT_1D, CInt(Math.Truncate(Math.Pow(2, iOrder))), 0, CInt(iDirection), CInt(iSignalDataType_1D), CInt(iFourierDataType_1D)) Assert.IsTrue(status = CInt(f_err.F_ERR_NONE), "fnFIE_fft_check_spec(1次元FFT ハンドル):エラーが発生しました。({0})", CType(status, f_err)) End If ' 2次元FFT の場合. If True Then ' 入力画像読み込み. status = api.fnFIE_load_img_file(TestImageDir & "/testdata/lena512.bmp", hTmp, f_color_img_type.F_COLOR_IMG_TYPE_UC8) Assert.IsTrue(hTmp <> FHANDLE.Zero, "hTmp が異常です.") '入力画像情報取得. width = api.fnFIE_img_get_width(hTmp) height = api.fnFIE_img_get_height(hTmp) type = api.fnFIE_img_get_type(hTmp) channels = api.fnFIE_img_get_channels(hTmp) ' 2次元FFT ハンドルの初期化. status = api.fnFIE_fft_2D_alloc(hFFT_2D, width, height, iDirection, iNormalization, iSignalDataType_2D, _ iFourierDataType_2D) Assert.IsTrue(status = CInt(f_err.F_ERR_NONE), "fnFIE_fft_2D_alloc: エラーが発生しました。({0})", CType(status, f_err)) ' 2次元FFT ハンドルの有効性チェック. status = api.fnFIE_fft_check_spec(hFFT_2D, width, height, CInt(iDirection), CInt(iSignalDataType_2D), CInt(iFourierDataType_2D)) Assert.IsTrue(status = CInt(f_err.F_ERR_NONE), "fnFIE_fft_check_spec(2次元FFT ハンドル):エラーが発生しました。({0})", CType(status, f_err)) End If Finally ' オブジェクトの開放. hTmp.Dispose() hFFT_1D.Dispose() hFFT_2D.Dispose() End Try End Sub End Class |