2010-03-31 4 views
5

LoG 커널을 구현하는 데 문제가 있습니다. 이 링크 http://homepages.inf.ed.ac.uk/rbf/HIPR2/log.htm에 표시된대로 theta = 1.4의 9x9 커널을 구현하려고합니다.가우시안 Laplacian

그러나 공식 자체에 문제가 있습니다. 누군가가 센터를 계산하는 방법을 말해 줄 수 있다면 9x9 커널에서 -40을 얻으려면 x 및 y 값을 사용하는 것이 좋습니다.

+0

당신은 할 수 없습니다 트리플 스탬프 더블 스탬프를 만든 경우 저를 수정합니다. – rook

+0

정교하게 만들어 주시겠습니까? – Don

+1

... x와 y는 픽셀의 좌표를 나타냅니다. –

답변

2

계수를 생성하는 데 사용되는 수식에 대해 걱정할 필요가 없습니다. 9x9 계수를 이미지에 적용하면됩니다.

예 (테스트되지 않은 코드!) :

const int K = 9; 
const int K2 = K/2; 
const int NORM = 500; // constant for normalising filter gain 
const int coeffs[K][K] = { ... }; 
int in_image[M][N]; 
int out_image[M][N]; 

for (i = K2; i < M - K2; ++i) 
{ 
    for (j = K2; j < N - K2; ++j) 
    { 
     int term = 0; 
     for (di = -K2; di <= K2; ++di) 
     { 
      for (dj = -K2; dj <= K2; ++dj) 
      { 
       term += in_image[i + di][j + dj] * coeff[K2 + ii][K2 + jj]; 
      } 
     } 
     out_image = term/NORM; 
    } 
} 
+2

아. 그러나 나는 궁금해하지만, 강박 적으로, 그 공식을 사용하여 sigma = 1.4를 가진 9x9 커널이 어떻게 생성 되었습니까? 내 인생에서 나는 그 가치를 적용 할 수 없다. – Don

+1

가장 쉬운 방법은 y = 0 인 경우를 살펴보고 x의 값을 살펴 보는 것입니다. 약 483의 배율 인수가있는 것 같습니다. 따라서 y = 0, x = -4 .. + 4에 대해 483 * LoG (x, y)를 계산하면 올바른 값을 얻게됩니다. (나는 스프레드 쉬트를 사용하여 이것을 체크했다.) 만약 당신이 더 나아 가기를 원한다면 y = -4 .. + 4, x = -4 .. + 4에 대한 커널을 평가할 수 있지만, 독자를위한 운동으로서 ...-) –

+1

예. 네가 옳아. 방금 5 분 전에 그걸 알아 냈어. 스케일링 팩터입니다. 다른 사람처럼 괴롭 히고있었습니다. Paul 대단히 감사합니다. 당신의 도움이 크게 감사되었습니다. – Don

1

최근에 나는 로그 필터, 당신이 필요로하는 유일한 매개 변수로 그 공식 시그마입니다 을 구현했습니다. 고정 크기 마스크가 필요한 경우 필터 마스크 값을 행렬에 저장하고 을 사용하거나 매번 다시 계산하고 필요한 행렬을 생성 할 수 있습니다. 필터의 크기는 시그마 값에 따라 달라지며, 그 크기보다 많은 경우 - 최대 크기를 벗어난 나머지 부분은 해당 수식을 사용하여 0으로 계산되기 때문에 의미가 없습니다. 그런

int halfsize = size/2;  
for (int x = -halfsize; x < halfsize; ++x) 
    for (int y = -halfsize; y < halfsize; ++y) 
     mask[x][y] = LoGFunction(x, y); 

뭔가 : 그래서, 예를 들어, 당신은, 그리고 매트릭스로 필터 자체를 계산하기 위해이 값을 통해 공식을 실행해야 을 필터 크기 = 9 × 9 을 얻었다. 필터 크기가 홀수 값이어야 함을 의미합니다. 희망이 도움이됩니다. 귀하의 경우에는 , 크기 = 9 시그마 = 1.4 x와 y의 변화를 통해 -4 점에서 식 (0, 0) (이 필터의 중심이다) 당신이 근처에 뭔가를 얻을 수를 사용하여 4 에 - 12

하지만 시그마를 0.2986 으로 설정하면 -40에 가까운 답변을 얻을 수 있습니다. 그 시그마 값이 내가 뭔가를 누락 1.4 월 바 같다 작성하는 이유 또한 이해가 안 ... 내가 실수하십시오

관련 문제