천객만래 [千客萬來] (It has an interminable succession of visitors)

[영역처리] Thinning (세선화) --- ③


2003.09.01


위의 그림은 알고리즘을 적용한 실험결과.


Zhang Suen 세선화 알고리즘의 주요부분임.


소스코드(주요부분) 

   // mark and delete pixels. 
   While Again = 1 Do 
   Begin 
       again := 0; 
       // Second sub-iteration. 
       For row := 1 To sy -2 Do 
           For col := 1 To sx -2 Do 
           Begin 
               If tTgt[col, row] <> 1 Then 
                   Continue; 
               k := nays8(tTgt, col, row); 
               If ( (k >= 2) And (k <= 6) ) And (Connectivity(tTgt, col, row) = 1) Then 
               Begin 
                   If ( tTgt[col+1, row] * tTgt[col, row-1] * tTgt[col-1, row] = 0) And 
                     ( tTgt[col, row-1] * tTgt[col, row+1] * tTgt[col-1, row] = 0) Then 
                   Begin 
                       localTgt[col, row] := 1; 
                       again := 1; 
                   End; 
                   // of if ..else. 
               End // End of if tTgt. 
           End; // Of For col. 
       // End of For row. 

       // delete pixel. 
       DeletePixel(tTgt, localTgt); 
       If Again = 0 Then 
           Break; 

       // First sub-iteration. 
       For row := 1 To sy -2 Do 
           For col := 1 To sx -2 Do 
           Begin 
               If tTgt[col, row] <> 1 Then 
                   Continue; 
               k := nays8(tTgt, col, row); 
               If ( (k >= 2) And (k <= 6) ) And (Connectivity(tTgt, col, row) = 1) Then 
               Begin 
                   If ( tTgt[col, row-1] * tTgt[col+1, row] * tTgt[col, row+1] = 0) And 
                     ( tTgt[col+1, row] * tTgt[col, row+1] * tTgt[col-1, row] = 0) Then 
                   Begin 
                       localTgt[col, row] := 1; 
                       again := 1; 
                   End; 
                   // of if ..else. 
               End // End of if tTgt. 
           End; // Of For col. 
       // End of For row. 

       // delete pixel. 
       deletePixel(tTgt, localTgt); 
   End; // of While Again. 





Posted by SB패밀리

[영역처리] Thinning (세선화) --- ②


2003.05.27



[영역처리] Thinning (세선화) --- ② 2003/5/27

영상처리 알고리즘에서 세선화는 대상 물체를 선 폭을 섬세하게 하여 한 픽셀의 두께를 갖는 중심선으로 추출하는 조작을 말한다.

이 세선화의 기본적인 세선화 알고리즘은 기본적으로 순차적 처리(sequential processing) 방법과 병렬적 처리(parallel processing) 방법으로 구분할 수 있다.  

⇒ 순차적 처리 방법: 현재의 처리 결과가 과거의 처리값에 영향을 받으며 미래의 처리 결과에도 영향을 미치는 것으로 이 방법에서는 대상 화상만 있으면 처리가 가능하다.한다. 

⇒ 병렬적 처리 방법: 현재의 처리 결과가 과거나 미래의 처리 결과에 전혀 영향 을 받거나 미치지 않는 것으로써 추가적으로 대상 화상 크기만큼의 버퍼가 필요하다. 현재의 관심 화소(pixel)에 대한 처리 결과를 버퍼에 저장하는 방식으로, 전체 화상에 대한 한 차례의 처리가 모두 끝난 다음 에 버퍼에 저장되어 있는 처리 결과를 원래의 대상 화상 위에 덮어 쓰게 된다. 

Zhang Suen 알고리즘

Zhang Suen 세선화 알고리즘은 1984년에 처음으로 발표한 것으로 병렬적 처리(Parallel Processing)방법의 하나로써 기본적인 알고리즘은 다음과 같다. 

1루프>처리대상인 검은 픽셀 I(i,j)에 대해서 다음과 같은 조건을 만족하면 지운다. 

① 픽셀 I(i,j)에 대해서 그 주위의 픽셀들의 connectivity가 1이고, 
② 픽셀 I(i,j)에 대해서 그 주위의 픽셀들 중 검은 픽셀이 적어도 2개에서 6개사이에 있어야 하며, 
③ 적어도 픽셀 I(i,j+1), I(i-1,j), I(i,j-1)중의 하나는 배경 픽셀 즉 255이어야 하며, 
④ 적어도 픽셀 I(i-1,j), I(i+1,j), I(i,j-1)중의 하나는 배경 픽셀 즉 255이어야 한다. 
⑤ 조건에 맞으면 픽셀을 제거한다. 

2루프>처리대상인 검은 픽셀 I(i,j)에 대해서 다음과 같은 조건을 만족하면 지운다. 

① 픽셀 I(i,j)에 대해서 그 주위의 픽셀들의 connectivity가 1이고, 
② 픽셀 I(i,j)에 대해서 그 주위의 픽셀들 중 검은 픽셀이 적어도 2개에서 6개사이에 있어야 하며, 
③ 적어도 픽셀 I(i-1,j), I(i,j+1), I(i+1,j)중의 하나는 배경 픽셀 즉 255이어야 하며, 
④ 적어도 픽셀 I(i,j+1), I(i+1,j), I(i,j-1)중의 하나는 배경 픽셀 즉 255이어야 한다. 
⑤ 조건에 맞으면 픽셀을 제거한다. 

위의 두 subiteration을 계속하여 더이상 지울 픽셀이 남아 있지 않을 때까지 계속 적용 시킨다.

Posted by SB패밀리

[영역처리] Thinning(세선화) -- ①


2001.06.12



- 제    목 : Thinning(세선화)
- 분    류 : Area Processing
- 자료출처 : 배경환
- 등 록 일 : 2000년 5월 6일 토요일
--------------------------------------------------------------------------------

Thinning(세선화) 
  도형에서 선 폭을 섬세하게 하여 한 픽셀로 이루어진 중심선을 추출하는 조작을 세선화(Thinning)라고 한다. 즉, 세선화는 도형의 본질적인 구조를 보존한 채, 선도형을 추출하는 조작이다. 세선화는 원래 도형의 연결성은 변화시키지 않고, 선으로 변화시키는 것이 필요하다. 세선화의 결과에서 도형의 결합 관계의 특징이 구해지므로, 글씨나 도면 등에서 선의 구조를 해석하는데 불가결한 처리로 되어 있다. 


세선화의 처리 조건 
1 골격선의 폭은 1이어야 한다. 
2 골격선의 위치는 선도형의 중심에 있어야 한다. 
3 골격선은 원래의 도형에 있어서의 연결성을 유지해야 한다. 
4 세선화 과정에서 골격선의 길이는 계속해서 줄여들어서는 안된다. 
5 패턴 윤곽선이 작은 요철로 인한 잡 가지선의 모양이 골격선에 추가되어서는 안된다. 


Posted by SB패밀리