2009-10-07 23 views
6

Tôi hiện đang làm việc để nhân rộng một số chức năng của chức năng regionprops của Matlab trong Octave. Tuy nhiên, tôi có một chút bị treo trên một tập con của chức năng. Thuộc tính 'Lập dị', 'MajorAxisLength', 'MinorAxisLength' và 'Orientation' là điểm gắn bó của tôi. Trong tài liệu, tất cả chúng đều xuất phát từ "... hình elip có cùng giây phút giống như khu vực."Những khoảnh khắc thứ hai của một khu vực là gì?

Vì vậy, câu hỏi của tôi là, những giây phút này là gì và làm cách nào để tìm chúng?

tôi đang tìm kiếm tại liên kết này: http://en.wikipedia.org/wiki/Image_moments

Thành thật mà nói, nó chỉ để lại cho tôi bối rối hơn. Bất cứ ai có thể chỉ cho tôi một cái gì đó một chút thân thiện hơn với người mới bắt đầu? Cảm ơn.

Trả lời

18

Bằng "giây phút", tài liệu có nghĩa là số thứ hai central moment.

Trong trường hợp dữ liệu một chiều, đây sẽ là variance (hoặc hình vuông của độ lệch chuẩn).

Trong trường hợp của bạn, nơi bạn có dữ liệu hai chiều, khoảnh khắc trung tâm thứ hai là covariance matrix.

Nếu X là một n-by-2 ma trận của các điểm trong khu vực của bạn, bạn có thể tính toán ma trận hiệp phương sai Sigma trong MATLAB như thế này (chưa được kiểm tra):

mu=mean(X,1); 
X_minus_mu=X-repmat(mu, size(X,1), 1); 
Sigma=(X_minus_mu'*X_minus_mu)/size(X,1); 

Bây giờ, điều này phải làm gì với hình elip? Vâng, những gì bạn đang làm ở đây là, có hiệu lực, phù hợp với một số multivariate normal distribution vào dữ liệu của bạn. Ma trận hiệp phương sai xác định hình dạng của phân phối đó và đường bao của phân phối đa biến bình thường - đợi cho nó - are ellipses!

Các hướng và độ dài của trục của elip được đưa ra bởi các vector riêng và giá trị riêng của ma trận hiệp phương sai:

[V, D]=eig(Sigma); 

Các cột của V hiện là vector riêng (tức là các hướng dẫn của các trục), và các giá trị trên đường chéo của D là các giá trị riêng (tức là độ dài của các trục). Vì vậy, bạn đã có 'MajorAxisLength' và 'MinorAxisLength'. Định hướng có lẽ chỉ là góc giữa trục chính và chiều ngang (gợi ý: sử dụng atan2 để tính toán điều này từ vectơ chỉ dọc theo trục chính). Cuối cùng, eccentricity

sqrt(1-(b/a)^2) 

nơi a là chiều dài của trục chính và b là chiều dài của trục nhỏ.

+0

Cảm ơn bạn. Điều này là rất tốt bằng văn bản, và trông giống như chính xác những gì tôi cần. – BigBeagle

+1

+1 - SO cần giải thích thanh lịch hơn như thế này ..... khi nói đến toán học, ít nhất. – Jacob

+1

Btw, bạn có thể tính toán hiệp phương sai trong MATLAB trực tiếp với 'cov' nhưng mã của bạn rõ ràng là có tính hướng dẫn hơn. – Jacob

0

Không chính xác câu trả lời bạn tìm kiếm, nhưng nó có thể giúp ai đó.

tôi đã viết cuốn sách này về chủ đề của cơ học và viết m-file để tính toán thời điểm diện tích quán tính:

Mastering Mechanics using MATLAB 5

Mã từ nó có thể được tìm thấy ở đây:

File Exchange

Chương 9 cần được quan tâm. Tôi nghi ngờ bạn có thể sử dụng mã như là một điểm khởi đầu.

1

Tôi không chắc chắn chính xác, nhưng không này tham khảo các statistical notion của moments (như trong chức năng tạo ra khoảnh khắc):

Moments Trung ương (những khoảnh khắc về giá trị trung bình):
    mu_k = E[(X − E[X])^k] ,     trong đó E là giá trị kỳ vọng

Như vậy bốn khoảnh khắc đầu tiên lần lượt là: {1, sai, skewness, kurtosis}.
Nhưng một lần nữa tôi có thể sai;)

Các vấn đề liên quan