2010-08-10 4 views
1

1D 히스토그램의 첫 번째 계곡을 감지하여 임계점으로 사용하려고합니다. (어두운 곳에서 밝은 곳으로/왼쪽에서 오른쪽으로 처리)밸리 감지 용 매끄러운 1D 히스토그램 (OpenCV)

불행히도 일부 히스토그램에는 미니 봉우리, 간격 및 톱니 모양 가장자리가 있습니다. 내가 작성한 알고리즘은 이것들에 매달려있다. 내가 필요로하는 산 골짜기가 꽤 눈에 띄기 때문에 나는 거친 가장자리를 부드럽게 할 필요가 있다고 생각합니다.

누구나 OpenCV에서 1D 막대 그래프를 매끄럽게 만드는 데 가장 좋은 방법이 있습니까?

이 알고리즘은 들쭉날쭉 한 가장자리에 걸려 실패있어 위치를 보여줍니다

http://applist.s3.amazonaws.com/junk/failed.png

블루 라인 : 당신이 계곡

답변

1

그것은 나에게 보인다 : 레드 라인
피크 일종의 세그먼트 화를 수행합니다. 점의 평균값을 계산하여 임계 값 자체를 설정하는 적응 형 알고리즘을 사용하여이 작업을 시도 할 수 있습니다. 이 특정 알고리즘은 경계 지점이 배경을 나타내는 것으로 가정하고 나머지 지점은 객체를 나타냅니다. 알고리즘은 다음과 같습니다.

calculate u1 -> the grayscale average of boundary points 
calculate u2 -> the grayscale average of all other points 
T_old = 0 
T_new = (u1 + u2)/2 
while (T_new != T_old) 
//you might want to modify this by introducing an epsilon value, something like 
// if T_new near T_old (abs(T_new-T_old)>1) 
u1 = grayscale average of points where grayscale intensity is lower than T_new 
u2 = grayscale average of points where grayscale intensity is higher or equal to T_new 
T_old =T _new 
T_new = (u1 + u2)/2 
end 
threshold = T_new 

이렇게하면 그레이 스케일 이미지에 거의 최적의 임계 값을 찾아야합니다.

2

히스토그램이나 이미지가 흐리게 보이게하십시오.

모든 이미지 조명 수준이 원본 이미지에 사용되는 것은 아니기 때문에 그럴 수도 있습니다. 히스토그램을 수행하기 전에 이미지를 흐리게 처리하여이 문제를 쉽게 해결할 수 있습니다. 또는 히스토그램 이동 평균을 시도하여 급격한 변화가 사라질 수 있습니다. 이 극복 할 수

+0

스매싱 침식과 히스토그램 대략적인이 정말 잘 근무하고있다. 히스토그램을 계산하기 전에 원본 이미지에 가우시안 블러를 적용했습니다. 좋은 간단한, 감사합니다! – developroom

0

가능한 방법 :

  • 가 가우스 곡선
  • 시도의 확장시키고 다음 히스토그램 이미지