WIL説明書(C++)  3.0.0
サンプルコード(Sobel法)
Hough.CircleHoughSobelEdge.png

ソースコード:

// $Revision: 1.1 $
void CircleHoughSobelEdge()
{
// 1) インスタンスの準備
// 2) 処理対象画像の取り込み
INT status = FVCL::File::LoadImageFile( _T("floppy_hough.jpg"), &src );
if( status != FVCL_ErrorCode::_SUCCESS )
{
_tprintf(_T("%s: Failed to load image file. code=%d\n"), __TFUNCTION__, status);
return;
}
// 3) 処理対象画像の有効性検査
return;
// 4) 画像処理準備
parser.SetSrcImage( 0, &src );
parser.SetResult( &result );
// 5-1) パラメータ設定 (本体)
param.SetResolution( 1.0 );
param.SetRadiusMin( 20.0 );
param.SetRadiusMax( 40.0 );
param.SetQRange( 30 );
param.SetEdgePercent( 20 );
param.SetMinScore( 8 );
param.SetMergeCenter( 2 );
param.SetMergeRadius( 1 );
// 5-2) パラメータ設定 (エッジ検出部分)
param_edge.SetEdgeThreshold( 120 );
param_edge.SetNmsLength( 1 );
// 6) 画像処理実行
parser.Execute();
// E) 表示範囲
RECT rect;
rect.left = 0;
rect.top = 0;
rect.right = src.GetHorzSize();
rect.bottom = src.GetVertSize();
// E) 確認用
{
// 画像表示の準備
display.Create( 1 );
display.SetImage( &src );
display.SetDisplayRect( rect );
// オーバレイの生成
FVCL::GDI::CFvOverlay* pOverlay0 = display.GetOverlay(0);
pOverlay0->SetScaling( true );
// 描画図形の生成と追加
for(UINT i = 0; i < (parser.GetResult()->GetCount()); i++ )
{
parser.GetResult()->GetData(i, &data );
// 円データ生成
FVCL::GDI::CFvGdiCircle circle( data.center_x, data.center_y, data.radius );
circle.GetPen().SetColor( RGB(255,0,0) );
// オーバレイへ追加
pOverlay0->DrawFigure( circle );
}
// 画像保存
display.SaveImage( &canvas, display.GetDisplayRect(), 1.0 );
FVCL::File::SaveImageFile(_T("Hough.CircleHoughSobelEdge.png"), canvas);
}
}

Documentation copyright © 2007 FAST Corporation. [B-001864]
Generated on 2023年11月02日(木) 10時12分56秒 for WIL説明書(C++) by doxygen 1.8.11