2011-07-29 4 views
1

Image Moment를 계산할 수있는 함수 또는 도구 상자가 있습니까? Matlab - Image Momentum Calculation

http://en.wikipedia.org/wiki/Image_moment

나는이 기능이 이진 적용 할 데이터의 유형

. 기본적으로 0과 1로 채워진 행렬입니다.

Data = 

    1  0  0  0  0  0 
    1  1  1  0  1  1 
    0  1  1  1  1  0 
    1  0  1  1  0  0 
    0  1  1  0  0  0 
    1  1  0  0  0  0 
    0  0  0  0  0  0 
    1  0  0  1  0  0 

그리고이 유형의 데이터에 이미지 모멘트를 적용하고 싶습니다. 이러한 유형의 데이터를위한 최적의 Matlab 구현이 있습니까?

답변

6

previous answer 광산에서는 regionprops 함수의 하위 집합에 대한 구현을 작성했습니다. 목표는 image moments에서 파생 된 이미지 방향을 찾는 것이 었습니다. 여기에 관련된 부분입니다 :

function outmom = raw_moments(im,i,j) 
    outmom = sum(sum(((1:size(im,1))'.^j * (1:size(im,2)).^i) .* im)); 
end 

function cmom = central_moments(im,i,j) 
    rawm00 = raw_moments(im,0,0); 
    centroids = [raw_moments(im,1,0)/rawm00 , raw_moments(im,0,1)/rawm00]; 
    cmom = sum(sum((([1:size(im,1)]-centroids(2))'.^j * ... 
        ([1:size(im,2)]-centroids(1)).^i) .* im)); 
end 

코드는 Wikipedia 기사에서 방정식을 다음, 그래서 추가 설명이 있습니다 .. 신속하고 자세한 답변을

+0

감사를 필요하지 않습니다. 이미지 순간에 관한 간단한 질문이 있습니다. 이미지 순간을 적용하기 전에 먼저 이미지에서 노이즈를 제거해야한다고 생각 하느냐, 아니면 그렇게 중요하지 않습니까? 예를 들어, 데이터 행렬의 마지막 행의 2 픽셀이 전체 결과에 영향을 줍니까? – Simon

+0

@ 시몬 : 응용 프로그램에서 노이즈를 정의하는 방법에 따라 다르 겠지만, 연결되지 않은 작은 영역을 의미합니까? 그렇다면 MATLAB은 형태학적인 작업을위한 몇 가지 기능을 제공합니다 (팽창/침식, BWAREAOPEN 등). – Amro