WIL説明書(C++)
3.1.0
総合概要
諸情報
モジュール
名前空間
クラス
ファイル
サンプルコード(極座標変換)
極座標変換
極座標変換の処理例:
回転するCD-ROMをラインセンサで撮像した画像(下図左)を極座標変換して、 元の円形の状態(下図右)に復元する処理例を示します。
【入力画像】
【出力画像】
ソースコード:
// $Revision: 1.1 $
void
PolarTrans()
{
// 1) インスタンスの準備
FVCL::PolarTrans::CFvPolarTrans
parser;
FVCL::Data::CFvImage
src;
FVCL::Data::CFvImage
dst;
// 2) 処理対象画像の取り込み
INT
status =
FVCL::File::LoadImageFile
( _T(
"disk_left.png"
), &src );
if
( status !=
FVCL_ErrorCode::_SUCCESS
)
{
_tprintf(_T(
"%s: Failed to load image file. code=%d\n"
), __TFUNCTION__, status);
return
;
}
// 3) 処理対象画像の有効性検査
if
(
FVCL_ErrorCode::_SUCCESS
!=
FVCL::PolarTrans::CFvPolarTrans::CheckValidity
( src ) )
return
;
// 4) 画像処理準備
parser.
SetSrcImage
( 0, &src );
parser.
SetDstImage
( 0, &dst );
// 5-1) パラメータ設定
parser.
SetInvert
(
false
);
// false: 矩形→円形
parser.
SetClearBackMode
(
true
);
parser.
SetSamplingMode
(
FVCL::PolarTrans::SamplingMode::NearestNeighbor
);
INT
horz, vert;
src.
GetWindow
( NULL, NULL, &horz, &vert );
FVCL::PolarTrans::CFvPolarTransParam
& param = parser.
GetParam
();
param.
SetCoordinateMode
(
FVCL::PolarTrans::CoordinateMode::Left
);
param.
SetOriginIn
( src.
GetWindow
().st );
param.
SetWidth
( horz );
param.
SetHeight
( vert );
param.
SetOriginOut
(
FVCL::Data::CFvPoint
(param.
GetWidth
(),param.
GetWidth
()) );
param.
SetRadius
( param.
GetWidth
() );
param.
SetStartAngle
(
FVCL::Data::CFvAngle
(270.0) );
param.
SetRangeAngle
(
FVCL::Data::CFvAngle
(360.0) );
// 5-2) 出力画像の有効化
parser.
Validate
(1);
// 有効化
// 6) 画像処理実行
parser.
Execute
();
// E) 処理結果画像の保存
FVCL::File::SaveImageFile
(_T(
"PolarTrans.PolarTrans.png"
), dst);
}
Documentation copyright © 2007 FAST Corporation. [B-001864]
Generated on 2024年10月10日(木) 10時01分27秒 for WIL説明書(C++) by
doxygen
1.8.11