2017-02-02 7 views
0

하이퍼 스펙트럼 이미지를 나타내는 3 차원 행렬이 있습니다. 2 차원은 다른 픽셀을 나타내고 1 차원은 다른 스펙트럼 밴드를 나타냅니다.MATLAB로 3 차원 행렬 맞추기

이 이미지를 다음과 같이 나누어야합니다. 1. 이미지를 픽셀 단위로 2 개의 세그먼트로 나눕니다. 2. 두 세그먼트 각각에 대한 평균 스펙트럼 값을 계산합니다. 3. 두 세그먼트의 모든 픽셀을 상기 평균과 같게 설정합니다.

결국 이미지가 2 개의 세그먼트로 분할되고, 같은 세그먼트의 모든 픽셀이 해당 세그먼트의 스펙트럼 평균과 동일해야합니다.

kmeans를 사용해 보았지만 지금까지 성공하지 못했습니다.

누구나 어떻게 할 수 있습니까?

답변

0

kmeans()에 대해 자세히 설명하면 도움이됩니다. kmeans으로 전화를 걸 때 이미지 크기 (m x n 픽셀)를 유지하려고합니다.

행/열을 통해 축소하면 kmeans는 각 픽셀을 해당 스펙트럼 밴드 벡터로 분류 할 수 있어야합니다.

[m,n,sps] size(data); %pixel row, pixel col, spectral band 
numGroups = 2; 
[idx,centers] = kmeans(reshape(data,[m*n,sps]),numGroups);