画像の歪みシミュレーションマップ生成
Namespace: fvalgcliAssembly: fvalgcli (in fvalgcli.dll) Version: 3.1.0.0 (3.1.0.11)
Syntax
C# |
---|
public static int fnFIE_calib_distort_image_map( F_CAMERA_PARAM camera, FHANDLE map ) |
Visual Basic |
---|
Public Shared Function fnFIE_calib_distort_image_map ( camera As F_CAMERA_PARAM, map As FHANDLE ) As Integer |
Parameters
- camera
- Type: fvalgcli..::..F_CAMERA_PARAM
カメラ内部パラメータ構造体
- map
- Type: fvalgcli..::..FHANDLE
歪み画像作成用座標変換マップ ( type:double, float / ch:2 )
Return Value
Type: Int32以下のエラーコードを返します。
エラーコード:
f_err | 内容 |
---|---|
F_ERR_NONE | 正常終了 |
F_ERR_NOMEMORY | メモリ不足エラー |
F_ERR_INVALID_IMAGE | 画像オブジェクトの異常 |
F_ERR_INVALID_PARAM | パラメータ異常 |
F_ERR_NO_LICENCE | ライセンスエラー、または未初期化エラー |
Remarks
Examples
C# | Copy |
---|---|
// $Revision: 1.1 $ using System; using System.Collections.Generic; using System.Text; using fvalgcli; namespace TC { public partial class FIE { /// <summary> /// 画像の歪みシミュレーションマップ生成. /// </summary> [FvPluginExecute] public void fnFIE_calib_distort_image_map() { int status = (int)f_err.F_ERR_NONE; // 内部パラメータ. F_CAMERA_PARAM camera = F_CAMERA_PARAM.init(916.396023110107, 910.774803134449, 1.12644931840078, 331.36766487411, 227.057842377842, -0.215845914024188, 0.0707690551914399); FHANDLE map = FHANDLE.Zero; // 変換マップ(歪み補正画像->歪み画像). FHANDLE hsrc = FHANDLE.Zero; // 歪み補正画像. FHANDLE hdst = FHANDLE.Zero; // 歪み画像. int width = 640; // マップの幅(結果画像の幅). int height = 480; // マップの高さ(結果画像の高さ) . try { // 画像のロード. status = api.fnFIE_load_img_file(TestImageDir + "/testdata/calib_ud.bmp", ref hsrc, f_color_img_type.F_COLOR_IMG_TYPE_UC8); Assert.IsTrue(status == (int)f_err.F_ERR_NONE, "エラーが発生しました。({0})", (f_err)status); // 歪みマップの生成. map = api.fnFIE_img_root_alloc((int)f_imgtype.F_IMG_DOUBLE, 2, width, height); status = api.fnFIE_calib_distort_image_map(camera, map); Assert.IsTrue(status == (int)f_err.F_ERR_NONE, "エラーが発生しました。({0})", (f_err)status); // 歪み画像の生成. int type = api.fnFIE_img_get_type(hsrc); int ch = api.fnFIE_img_get_channels(hsrc); hdst = api.fnFIE_img_root_alloc(type, ch, width, height); status = api.fnFIE_geotrans_warpping(hsrc, map, hdst, FHANDLE.Zero, true, f_sampling_mode.F_SAMPLING_BILINEAR); Assert.IsTrue(status == (int)f_err.F_ERR_NONE, "エラーが発生しました。({0})", (f_err)status); // 画像の保存. status = api.fnFIE_save_bmp(ResultDir + "/fnFIE_DistortImage.bmp", hdst); Assert.IsTrue(status == (int)f_err.F_ERR_NONE, "エラーが発生しました。({0})", (f_err)status); } finally { map.Dispose(); hsrc.Dispose(); hdst.Dispose(); } } } } |
Visual Basic | Copy |
---|---|
' $Revision: 1.1 $ Imports System.Collections.Generic Imports System.Text Imports fvalgcli Public Partial Class FIE ''' <summary> ''' 画像の歪みシミュレーションマップ生成. ''' </summary> <FvPluginExecute> _ Public Sub fnFIE_calib_distort_image_map() Dim status As Integer = CInt(f_err.F_ERR_NONE) ' 内部パラメータ. Dim camera As F_CAMERA_PARAM = F_CAMERA_PARAM.init(916.396023110107, 910.774803134449, 1.12644931840078, 331.36766487411, 227.057842377842, -0.215845914024188, _ 0.0707690551914399) Dim map As FHANDLE = FHANDLE.Zero ' 変換マップ(歪み補正画像->歪み画像). Dim hsrc As FHANDLE = FHANDLE.Zero ' 歪み補正画像. Dim hdst As FHANDLE = FHANDLE.Zero ' 歪み画像. Dim width As Integer = 640 ' マップの幅(結果画像の幅). Dim height As Integer = 480 ' マップの高さ(結果画像の高さ) . Try ' 画像のロード. status = api.fnFIE_load_img_file(TestImageDir & "/testdata/calib_ud.bmp", hsrc, f_color_img_type.F_COLOR_IMG_TYPE_UC8) Assert.IsTrue(status = CInt(f_err.F_ERR_NONE), "エラーが発生しました。({0})", CType(status, f_err)) ' 歪みマップの生成. map = api.fnFIE_img_root_alloc(CInt(f_imgtype.F_IMG_DOUBLE), 2, width, height) status = api.fnFIE_calib_distort_image_map(camera, map) Assert.IsTrue(status = CInt(f_err.F_ERR_NONE), "エラーが発生しました。({0})", CType(status, f_err)) ' 歪み画像の生成. Dim type As Integer = api.fnFIE_img_get_type(hsrc) Dim ch As Integer = api.fnFIE_img_get_channels(hsrc) hdst = api.fnFIE_img_root_alloc(type, ch, width, height) status = api.fnFIE_geotrans_warpping(hsrc, map, hdst, FHANDLE.Zero, True, f_sampling_mode.F_SAMPLING_BILINEAR) Assert.IsTrue(status = CInt(f_err.F_ERR_NONE), "エラーが発生しました。({0})", CType(status, f_err)) ' 画像の保存. status = api.fnFIE_save_bmp(ResultDir & "/fnFIE_DistortImage.bmp", hdst) Assert.IsTrue(status = CInt(f_err.F_ERR_NONE), "エラーが発生しました。({0})", CType(status, f_err)) Finally map.Dispose() hsrc.Dispose() hdst.Dispose() End Try End Sub End Class |