You are on page 1of 5

Phm c Long - Khoa Cng ngh t ng ho H CNTT & Truyn thng Thi Nguyn

BI GING NG DNG X L NH TRONG CNG NGHIP

3.1. Bin i Hough. Bin i Hough l mt k thut c th dng tch ra cc c im ca mt hnh dng c th trong mt nh nh phn. Khi dng cc chng trnh my tnh nhn din mt i tng no c hnh dng bt k, phng php hu hiu hin nay l s dng bin i Hough. Cc bi ton tm kim t nhng mc n gin nh tm ng thng ti cc bi ton phc tp hn nh tm hnh trn, hnh elipse hoc cc hnh phc tp u c th thc hin bng bin i Hough (vi iu kin cc hnh dng ny biu din ton hc c). a). Bin i Hough tm ng thng Khng gian nh v khng gian tham s trong HT

Rho and theta representation of a straight line. Each line has a unique parameter set (, ).

Trn h to cc mt ng thng c hnh dng nh trn hnh. Mi mt im s c mt to (xi, yi) trong trc to ny. Nu chng ta dng tham s ( di ng vung gc t gc to n ng thng) v (gc gia ng vung gc vi trc x) biu din ng thng th chng ta biu din ng thng qua thng gian tham s. Chng ta c quan h
y=

cos( ) hay = x*cos()+y*sin() *x+ sin( ) sin( )

Cc gi tr v c gii hn trong gii hn [0.3600] hoc [0, 2] radian. trong gii hn [D,D] trong D l ng cho ca nh. Nh vy mt ng c th bin i thnh mt im trong khng gian tham s vi cc thng s v , khng gian ny cng c gi l khng gian Hough. Kt qu ca bin i Hough c lu gi trong mt ma trn gi l accumulator. Mt chiu ca ma trn ny l cc gi tr (gi tr gc) v chiu kia l cc gi tr (khong cch). and each element has a value telling how many points/pixels are on the line with the parameters (rho,
Thi Nguyn 7-2013

Phm c Long - Khoa Cng ngh t ng ho H CNTT & Truyn thng Thi Nguyn

BI GING NG DNG X L NH TRONG CNG NGHIP

theta). So the element with the highest value tells what line is most represented in the input image. Cc bc bin i Hough n gin cho ng thng: 1. Np nh 2. Tm cc bin trong nh (dng mt trong cc phng php tm bin) 3. Vi mi pixels trong nh Nu pixel (x,y) l mt im bin (edge) vi mi gi tr gc tnh v gc () vi mi pixel (x,y) tng v tr (, ) trong accumulator 4. V khng gian Hough. 5. Tm gi tr ln nht trong accumulator 6. V ng vi gi tr ln nht trong nh u vo tm cc ng trn s dng biu thc (x -a)^2 + (y-b)^2 = r^2 Chng ta c 3 tham s. Nu vit li phng trnh trn chng ta nhn c a = x r*cos() b = y - r*sin() nh vy chng ta cn mt mng cu trc d liu accumulator 3 chiu (3D) ly trong gii hn 3600. Sau khi nh ton th c x l, accumulator s trng ging nh hnh bn phi. Mng accumulator th c v vi r trn trc y v theta ct cho qua trc x (across the x-axis). Cc ng trong ng cong accumulator - ng vt l mnh nht trong nh u vo tng ng vi cc vng en nht trn accumulator. V d bin i Hough tm ng thng tng: Tm cc ng thng trong mt nh c thng s ho dng:

r = xcos + ysin , trong r l khong cch vung gc t gc to n ng thng v l gc ca r vi trc x. Vi mi im (x,y) trn ng ny r v l hng s. Vi N im thng hng trong to cc c phng trnh r = xcos + ysin . Bin i Hough s chuyn N im ny thnh N ng hnh sin trong mt phng (r,), chng giao nhau im (r,).

Thi Nguyn 7-2013

Phm c Long - Khoa Cng ngh t ng ho H CNTT & Truyn thng Thi Nguyn

BI GING NG DNG X L NH TRONG CNG NGHIP

Thut ton: Input: nh nguyn bn dng mng 2 chiu: Image1[xMax][yMax] Output: nh mi: Image2 [xMax][yMax] cha cc ng thng tm c. Intermediate data structure: Hough [tMax][rMax] to calculate the corresponding lines. xMax, yMax: Kch thc nh. tMax: Gii hn ln nht ca gc tm kim; Chng hn 3600. x, y to trong khng gian nh Algorithm: /* Fill in the Hough array*/ for (x=0; x< xMax; x++){ // Tm khp for (y=0 ; y< yMax ; y++){ // cc pixel trong nh if ( Image1[x][y] > IThresh){ // Nu sng im nh > ngng sng for (t=0 ; t< tMax ; t++){ // Xem trong khong gc tm kim r = (x-xMax/2)*cos(t) +(y-yMax/2)*sin(t) ; // Tnh r th c if (r >0) {Hough [t][r] ++;} // Nu r> 0 cp nht mng Hough. } /* Process Hough array to find strong maxima */ for (t = 0; t < tMax / 2; t++) // Tm trong na gii hn gc for (r = 0; r < rMax; r++) // Tm trong gii hn r if (Hough[t][r] > Hthresh) // Nu s im Hough > ngng t trc { /* Check 5x5 neighborhood for max */
Thi Nguyn 7-2013

Phm c Long - Khoa Cng ngh t ng ho H CNTT & Truyn thng Thi Nguyn

BI GING NG DNG X L NH TRONG CNG NGHIP

max = TRUE; for (dt = (t - 2); dt <= (t + 2); dt++) // Tm trong ca s for (dr = (r - 2); dr <= (r + 2); dr++) // 5 x 5 if ((dr >= 0) && (dr < rMax) && (dt >= 0) && (dt < tMax) && (Hough[dt][dr] > Hough[t][r])) // Nu c 5 iu kin ny u // ng th max = FALSE { max = FALSE; break; } // Dng li nh /* Process Hough array to create output image array */ if (max == TRUE) { makeLine(r, t); } } void makeLine (r,t) { for (x=0 ; x<xMax ; x++) /* calculate y = r/sin (t) x*cotg(t) and fill in the Image2 array */ }

Thi Nguyn 7-2013

Phm c Long - Khoa Cng ngh t ng ho H CNTT & Truyn thng Thi Nguyn

BI GING NG DNG X L NH TRONG CNG NGHIP

b). Bin i Hough tm hnh ch nht Tham kho bi Rectangle Detection based on aWindowed Hough Transform
Claudio Rosito Jung and Rodrigo Schramm UNISINOS - Universidade do Vale do Rio dos Sinos Ciencias Exatas e Tecnologicas Av. UNISINOS, 950. Sao Leopoldo, RS, Brasil, 93022-000 {crjung,schramm}@exatas.unisinos.br.

c). Bin i Hough tm ng trn Tham kho bi Detecting circular and rectangular particles based on geometric feature detection in electron micrographs
Zeyun Yu* and Chandrajit Bajaj
The Center of Computational Visualization, Department of Computer Sciences and Institute of Computational Engineering and Sciences, The University of Texas at Austin, Austin, TX 78712, USA Received 21 July 2003, and in revised form 10 October 2003

d). Bin i Hough tm ng bt k

Thi Nguyn 7-2013

You might also like