90 likes | 227 Views
FGHT Implementation Using Sparse-Array. Shun-Ying Gan. Suetake N., Uchino E. and Hirata K., 2006, “Generalized fuzzy Hough Transform for detecting arbitrary shapes in a vague and noisy image,” Soft Computing, Vol. 10, pp. 1161-1168. FGHT Process. Step 1: Line segment approximation
E N D
FGHT Implementation Using Sparse-Array Shun-Ying Gan Suetake N., Uchino E. and Hirata K., 2006, “Generalized fuzzy Hough Transform for detecting arbitrary shapes in a vague and noisy image,” Soft Computing, Vol. 10, pp. 1161-1168.
FGHT Process • Step 1:Line segment approximation • Step 2: Creation of an extended C-table • Step 3: Shape detection processes
FGHT Class Implementation • The structure for C_table struct C_TABLE { float deltaA; float deltaB; float tauC; int cx; int cy; float Lab; float beta; int tx; int ty; } • Use sparse array class CINTSparseArray *sa; Ballot-box ( xr: 640/8, yr: 480/8, θ: 360, k: 20 )
Main function • int GetAllBlockLineSegment( Byte **srcImg, int blockSize, int blockXNum, int blockYNum, BLOCK_LINE_SEGMENT *blsArray); • void CreateC_Table( int blsNum ); • VOTE_BOX ShapeDetection( int topNum );
How to use FGHT class • Create FGHT class ht = new CHoughTransform; • Create C_Table ( from template image ) ht->tempBlsNum = ht->GetAllBlockLineSegment( tempBin->Buf, ht->BlockSize, ht->tempBlockXNum, ht->tempBlockYNum, ht->tempBlsArray ); ht->CreateC_Table( ht->tempBlsNum ); • Shape Detection ( from object image ) ht->srcBlsNum = ht->GetAllBlockLineSegment( srcBin->Buf, ht->BlockSize, ht->srcBlockXNum, ht->srcBlockYNum, ht->srcBlsArray ); VOTING_ARRAY va = ht->ShapeDetection( 1 );
Test ( General-array V.S Sparse-array ) Image-1 Image-2 Template Template Object Object
Image-1 • C_Table list count: 1492 • General Array • Vote Time: 5871 ms • Memory Size: 131 MB • Sparse array • Vote Time: 3672 ms • Memory Size: 352 KB
Image-2 • C_Table list count: 2091 • General Array • Vote Time: 8906 ms • Memory Size: 131 MB • Sparse array • Vote Time: 8219 ms • Memory Size: 406 KB