나는 이미 다음 질문에서 비슷한 질문을했습니다. previous thread. 지금까지 불행히도 그 문제를 완전히 해결할 수는 없었으며 단지 해결되었습니다. 이전 스레드에 모든 새 정보를 포함하기가 어렵 기 때문에 여기에 고유 한 컨텍스트가있는 세련되고 확장 된 질문을 게시하고 이전 스레드에 연결하십시오.히스토그램 피크 식별 및 가우스 피팅 최소 누적 hight 차이가있는 C++
현재 데이터 세트 막대 그래프의 값 범위를 동적으로 식별하여 3D 데이터 세트의 특정 영역을 추출하는 paper의 알고리즘을 구현 중입니다. 상기 방법은 다음과 같이 표현 될 수있는 단순화 된 방식 :
- 히스토그램에서 최고 피크 찾기
- 가 가우시안에 의해 정의 된 값 범위를 사용하여 피크
- 가우시안 맞는 평균 (μ) +/- 편차 (ϭ) 히스토그램의 특정 영역 이 식별되고이 영역의 복셀 (= 3D 픽셀)이 원래 히스토그램에서 제거됩니다.
- 이전 단계의 결과로 새로운 최고 피크가 나타나야합니다.이 단계에서 단계를 반복 할 수 있습니다. 이 단계는 데이터 세트 막대 그래프가 비어있을 때까지 반복됩니다.
제 질문은 위의 설명 중 1 단계와 2 단계에 대한 설명입니다. "가장 높은 피크가 식별되고 가우스 곡선이 모양에 맞습니다. 가우스는 중간 점으로 설명됩니다 μ, 높이 (h)와 편차 ϭ이. 피팅 프로세스는 히스토그램 가우스의 중간 부분 사이에 축적 된 높이 차이를 최소화한다. 에러 합산 범위 μ +/ϭ인가? "1
를 다음에게 물어 의지 내 질문에 답해주세요.
- 최고 피크를 나타내는 총 막대 그래프의 빈을 어떻게 식별해야합니까? 꼭지점을 식별하기 위해 간단히 히스토그램을 실행하고 빈도가 가장 높은 빈의 인덱스를 저장합니다. 그러나 얼마나 멀리까지 도달 범위가 가장 높은 빈의 왼쪽과 오른쪽으로 연장되어야합니다. 현재 나는 다음 빈이 이전 빈만큼 작 으면 최상위 빈의 왼쪽과 오른쪽으로 간단히갑니다. 그러나 이것은 히스토그램에 주름이 생기기 때문에 매우 작은 범위입니다. 나는 히스토그램을 부드럽게하는 것에 대해 이미 생각했다. 그러나 복셀을 빼기 (위의 설명에서 3 단계) 이후 히스토그램에 주름이 다시 포함될 수 있기 때문에 각 반복 후에이를 수행해야합니다. 그리고 반복되는 매끄러움이 결과를 왜곡 시킬까 걱정됩니다. 따라서 필자는 현재의 방식보다 더 나은 피크를 감지하는 효율적인 방법이 있는지 묻고 싶습니다. previous thread에서 혼합 모델 및 deconvolution에 대한 제안이있었습니다. 그러나 히스토그램의 모양이 매 반복마다 끊임없이 바뀌면이 방법이 정말 합리적입니까?
- 가우스 곡선과 가우시안 중간 부분 사이의 축적 된 높이 차이가 최소화되도록 식별 된 피크에 가우스 곡선을 어떻게 맞추면됩니까? previous thread의 질문 중 하나에 따르면, 평균과 편차를 계산하여 히스토그램 빈의 주어진 범위에 곡선을 맞추 었습니다 (이것이 맞습니까?). 그러나이 시점부터 히스토그램과 가우시안 중간 부분의 누적 높이 차이를 최소화하려면 어떻게해야합니까?
도움 주셔서 감사합니다. 감사합니다 Marc
'가우스의 중간 부분'에 대한 정확한 정의가 있습니까? 아니면 모든 종이 상태입니까? – Phonon
수학에 정통한 분이라면 다음과 같이 도움이 될 것입니다. http://mathworld.wolfram.com/NonlinearLeastSquaresFitting.html – Phonon
일반적으로 Gaussian을 데이터에 적용하는 쉬운 방법은 * parabola *' y'를 데이터의 * 자연 대수 *로 변환 한 다음, * e *를 해당 포물선 ('exp (y)')의 힘으로 끌어 올리면 Gaussian을 얻을 수 있습니다. 피팅 포물선은 더 쉬워야합니다. – Phonon