Eigenvalues ​​và eigenvector của hình ảnh 3D Laplacian


7

Tôi cần tính toán giá trị riêng và hàm riêng của hình ảnh 3D Laplacian. Tôi đang cố gắng đánh giá hạt nhân nhiệt trên lưới thống nhất 3D (cấu trúc đồng nhất được tạo bởi hình ảnh voxelized) ở các giá trị thời gian khác nhau, để thực hiện Chữ ký hạt nhân nhiệt lượng (vui lòng xem phần "Tính toán số"). Tên miền tôi đang làm việc không phải là hình chữ nhật, vì vậy tôi có 1s trên một số điểm lưới và 0 trên các điểm khác, tạo ra hình dạng 3D nhị phân. Tôi đã đọc về điều này cho 2D: trong 2D, tính toán laplacian của mọi điểm lưới được tính toán và giá trị riêng và hàm riêng của ma trận kết quả được tính toán. Làm cách nào tôi có thể làm điều này cho 3D? Tất cả thông tin và ví dụ tôi đã đọc đều dành cho hình ảnh 2D. Các câu hỏi cụ thể là:

  1. Làm cách nào tôi có thể có được ma trận từ hình ảnh 3D mà tôi có được sau khi áp dụng toán tử Laplace rời rạc (3x3x3)?
  2. Nếu không có cách nào để có được một ma trận, thì tôi nên tính toán giá trị riêng và hàm riêng của lưới có cấu trúc 3D. Cách đơn giản nhất để làm điều này là gì? Bạn có thể giới thiệu cho tôi bất kỳ phần mềm để làm điều này?

Tôi thực sự sẽ đánh giá cao bất kỳ gợi ý.

Cảm ơn trước.


Như @nikie đã chỉ ra, xin vui lòng, làm rõ câu hỏi của bạn. Bạn có muốn tính toán các dẫn xuất 3D để phân phối nhiệt, tức là tạo trường vectơ 3D trên lưới không?
Tiến sĩ.

Cảm ơn bác sĩ. Tôi đã thêm thông tin vào câu hỏi và tham khảo bài báo tôi đang cố gắng thực hiện.
Federico

Tôi không biết chữ ký nghe thể tích là gì, vì vậy tôi có thể sai, nhưng tôi nghĩ rằng bài viết bạn liên kết đến là về hình dạng 3D, phải không? Theo cách hiểu của tôi, Laplacian có thể được xem như là một phép nhân ma trận (vì nó là tuyến tính) và bạn phải tìm các giá trị riêng của ma trận đó (tức là một ma trận có một hàng cho mỗi voxel và một cột cho mỗi voxel) .
Niki Estner

Tôi nghĩ rằng anh ta đang cố gắng tìm giá trị bản địa của laplacian trong 3D. (nhưng tôi có thể sai)
Beni Bogosel 2/12/13

Câu trả lời:


3

Câu trả lời này đến hơi muộn, nhưng tôi nghĩ rằng cần phải làm sáng tỏ một số nhầm lẫn về cấu trúc bản địa của Laplacian là gì và cách tính toán.

Trước hết, điều quan trọng cần nhấn mạnh rằng đây không phải là về các thuộc tính của hạt nhân cục bộ được sử dụng để tính toán các dẫn xuất rời rạc. Thay vào đó, bạn phải hiểu Laplacian là toán tử tuyến tính trên một không gian vectơ có các phần tử nằm trong trường hợp của bạn là tập dữ liệu thể tích.

Điều đó có nghĩa là áp dụng toán tử Laplace là một bản đồ tuyến tính ánh xạ một vectơ (tập dữ liệu) sang một vectơ khác (tập dữ liệu). Trong bối cảnh này, các hàm riêng của Laplacian lại là các vectơ (tập dữ liệu) trong không gian vectơ đó. Vì vậy, câu trả lời cho câu hỏi của bạn sẽ là một tập hợp các tập dữ liệu thể tích, trên thực tế có nhiều như kích thước của không gian vectơ của bạn (tức là số lượng voxels độc lập ).

Hãy xem xét một ví dụ rất đơn giản. Chụp ảnh 1 chiều, tức là một hàng pixel và chúng ta cũng chỉ sử dụng rất ít pixel, cụ thể là 4. Sau đó, hai pixel trung tâm phải hướng hàng xóm, trong khi pixel đầu tiên và pixel cuối chỉ có một pixel lân cận.

1-2-3-4

Với hình dạng pixel này, chúng ta có thể đưa ra kết quả của toán tử Laplace riêng cho hai pixel trung tâm 2 và 3 dưới dạng các hàm tuyến tính của các giá trị của pixel:

tôi[2]= =p[1]-2*p[2]+p[3]
tôi[3]= =p[2]-2*p[3]+p[4]

Hai pixel 1 và 4 khác không có đủ lân cận trực tiếp để tính đạo hàm thứ hai rời rạc. Chúng ta có thể khắc phục điều đó bằng cách giả sử rằng pixel 1 và 4 là hàng xóm trực tiếp, đóng cấu trúc liên kết vào một vòng tròn và áp đặt cái được gọi là điều kiện biên tròn. Hoặc chúng ta chỉ cần lấy các dẫn xuất thứ hai tại các ranh giới để biến mất. Hãy làm cả hai, nhưng bắt đầu với điều kiện biên tuần hoàn. Vì vậy chúng tôi có:

l[1]=p[4]2p[1]+p[2]
l[4]=p[3]2p[4]+p[1]

Bản đồ này là tuyến tính và chúng ta có thể viết nó dưới dạng phương trình ma trận, ánh xạ vectơ cột p:=(p[1],p[2],p[3],p[4]) đến l=(L[1],L[2],L[3],L[4]) bằng cách nhân với ma trận M.

L=Mp

Chúng tôi gọi ma trận này là đại diện riêng biệt của toán tử Laplace và đối với trường hợp của chúng tôi, nó là

M=(2101121001211012)

Các hàm riêng của ma trận này là

v1=(1,1,1,1)
v2= =(0,-1,0,1)
v3= =(-1,0,1,0)
v4= =(1,1,1,1)
với các giá trị riêng liên quan
λ1= =4,λ1= =2,λ1= =2,λ1= =0

Bạn có thể nhận ra các vectơ này là vectơ cơ sở của biến đổi Fourier rời rạc trên vectơ này và các giá trị riêng như các tần số riêng biệt của chúng. Điều này nói chung là đúng và trên thực tế, sự phân rã của một vectơ (hay nói chung hơn là một hàm) thành eigenspectrum của toán tử Laplace khái quát hóa ý tưởng về phép biến đổi Fourier.

Bây giờ hãy điều tra những gì xảy ra nếu chúng ta sử dụng các điều kiện biên thay thế trong đó tôi[1]= =0tôi[4]= =0. Ma trậnM sau đó

M= =(00001-21001-210000)

Cearly, ma trận này có một tập hợp các hàm riêng và giá trị riêng khác nhau. Chúng không trực quan và insterest, vì vậy tôi sẽ không liệt kê chúng một cách rõ ràng. Tuy nhiên, đáng chú ý là bây giờ chúng ta có giá trị riêng0 hai lần, điều đó có nghĩa là không gian eigensub nơi mà laplacian biến mất là hai chiều.

Vậy làm thế nào để mọi thứ thay đổi nếu chúng ta có một hình ảnh phù hợp thay vì một hàng pixel? Không nhiều. Chúng ta chỉ cần viết Laplacian cho từng pixel trong khi xem xét mối quan hệ láng giềng trực tiếp hoặc cấu trúc liên kết của hình ảnh. Để làm cho mọi thứ phức tạp hơn một chút, chúng ta hãy đi với một hình ảnh hai chiều có hình dạng bất thường.

1-2-3|||4-5-6-7-số 8|||||9-10-11-12-13|||14-15-16

Rõ ràng bây giờ chúng ta phải lấy Laplacian 2 chiều bằng cách tính tổng các đạo hàm riêng thứ hai theo hướng ngang và dọc. Cho rằng chúng tôi yêu cầu hai hàng xóm trực tiếp theo mỗi hướng. Những điểm bên trong5,6,7,10,11,12do đó có một bản mở rộng laplace 2-d đầy đủ. Đối với điểm5 nó trông như thế này chẳng hạn:

l[5]=p[4]2p[5]+p[6]+p[1]2p[5]+p[10]=p[4]+p[6]+p[1]+p[10]4p[5]

Đối với các điểm góc 1,3,4,8,9,13,14,16 chúng ta không thể xây dựng một đạo hàm thứ hai rời rạc để chúng ta sử dụng một điều kiện biên, vd l[1]=0

Có hai điểm còn lại, 215. Cả hai đều có hai hàng xóm trực tiếp theo hướng ngang, nhưng không theo hướng dọc. Do đó, chúng ta có thể áp dụng điều kiện biên chỉ ảnh hưởng đến hướng dọc, bằng cách đặt đạo hàm thứ hai dọc thành 0, trong khi chúng ta đánh giá đạo hàm thứ hai rời rạc theo chiều ngang và nhận đượcl[2]=p[1]2p[2]+p[3] và tương tự như vậy cho l[15].

Theo cấu trúc này, chúng ta có một phương trình tuyến tính cho mọi điểm liên quan đến các giá trị pixel. Một lần nữa, chúng tôi viết nó như một phương trình ma trậnL=Mp, trong đó ma trận trong trường hợp này có 16×16mục. Cụ thể, đó là

M=(0000000000000000121000000000000000000000000000000000000000000000100141000100000001001410001000000010014100010000000000000000000000000000000000000000100014100100000001000141001000000010001410010000000000000000000000000000000000000000000001210000000000000000)

Và một lần nữa chúng ta có thể giải quyết cho hệ thống eigensystem của ma trận này. Một cách giải thích vật lý tốt đẹp cho các hình ảnh mà bạn nhận được với tư cách là người bản địa là chúng đại diện cho các chế độ rung của màng có hình dạng giống như hình ảnh của bạn, với tần số được đưa ra bởi các giá trị riêng.

Bạn có thể dễ dàng đẩy trò chơi này lên bất kỳ số lượng kích thước nào, miễn là bạn biết mối quan hệ lân cận giữa các voxels của mình. Đơn giản chỉ cần xây dựng phương trình tuyến tính riêng lẻ như trên, xây dựng ma trận, tìm hệ thống eigensystem.

Với thông tin thu được từ các hàm riêng của Laplacian giải các phương trình khác nhau liên quan đến Laplacian rời rạc có thể được đơn giản hóa rất nhiều. Sau khi tìm thấy cấu trúc riêng, chỉ phụ thuộc vào hình dạng của vùng, tất cả các bộ dữ liệu có thể dễ dàng phân tách thành hàm riêng và các phương trình khác biệt trở nên tầm thường.


0

Không rõ bạn đang cố gắng làm gì: Laplacian là một giá trị vô hướng, không phải là ma trận. Vì vậy, nó không có giá trị riêng. Có lẽ bạn có nghĩa là giá trị bản địa / -vector của Hessian?

Để tính toán giá trị riêng và hàm riêng của Hessian, trước tiên bạn sẽ tính Hessian (ma trận 3x3 đối xứng, chứa các đạo hàm thứ hai trong mỗi 3 hướng) cho mỗi pixel. Một cách đơn giản để làm điều này là áp dụng ba bộ lọc gradient (theo hướng x, y, z) cho hình ảnh 3d của bạn. Bây giờ bạn có 3 hình ảnh. Đối với mỗi hình ảnh đó, bạn lại áp dụng ba bộ lọc gradient, cho hình ảnh kết quả 3x3, chứa các mục 3x3 của ma trận Hessian cho mỗi pixel. (Vì các bộ lọc gradient đi lại, I * gx * gy = I * gy * gx, bạn thực sự chỉ phải tính toán 6 trong số chúng.)

Có hai cách để lấy giá trị riêng và -vector của ma trận 3x3 này: Hoặc tìm gốc của đa thức đặc trưng hoặc sử dụng phương pháp lặp. Đa thức đặc trưng là hình khối, vì vậy tôi đoán các phương pháp lặp sẽ nhanh hơn trong thực tế (vì các khối lập phương mất nhiều thời gian hơn để tính toán phép cộng / nhân đơn giản).


Tôi sẽ nêu vấn đề của mình với hy vọng nó làm rõ câu hỏi. Tôi đang cố gắng đánh giá hạt nhân nhiệt trên lưới thống nhất 3D ở các giá trị thời gian khác nhau. Âm lượng tôi đang làm việc không phải là hình chữ nhật, vì vậy tôi có 1s trên một số điểm lưới và 0 trên các điểm khác, tạo ra hình dạng 3D nhị phân. Tôi đã đọc về điều này trong 2D: trong 2D, tính toán laplacian của mọi điểm lưới được tính toán và các giá trị riêng và hàm riêng của ma trận kết quả được tính toán. Làm thế nào tôi có thể làm điều này cho 3D?
Federico

Tôi hiểu rồi. Vui lòng cập nhật câu hỏi của bạn với thông tin này để tôi có thể xóa câu trả lời của mình (rõ ràng là nó không trả lời câu hỏi). Khi bạn cập nhật câu hỏi của mình, xin lưu ý rằng "ma trận 2D" thường có nghĩa là ma trận có 2 hàng và 2 cột; ma trận 3d là ma trận có 3 hàng và 3 cột. Tôi nghĩ những gì bạn muốn nói không phải là ma trận 3d, mà là một tenxơ bậc 3, hoàn toàn không phải là ma trận.
Niki Estner

Trên thực tế, tôi nghĩ rằng, câu trả lời của bạn có thể có liên quan, đó là cùng một khái niệm mà tôi đã chỉ ra với ấn phẩm đó. Nó không hoàn toàn rõ ràng, làm thế nào nó có thể áp dụng cho vấn đề liên quan đến lưới 3D của OP.
Tiến sĩ.

0

Có lẽ điều này giúp (?).

http://en.m.wikipedia.org/wiki/Kronecker_sum_of_discittle_Laplacians

L = Dxx I I + I Dyy I + I I Dzz

trong đó ¤ là ​​sản phẩm Kronecker (nó không phải là biểu tượng thích hợp, không biết cách lấy nó ở đây). Tôi nghĩ rằng giá trị riêng và hàm riêng được tính từ ma trận kết quả trên mỗi voxel.

Khái niệm tenxơ như được mô tả trong bài viết sau Phần 4 có vẻ liên quan, mặc dù nó không hoàn toàn giống nhau. Tuy nhiên, nó liên quan chặt chẽ với ma trận Hessian như câu trả lời @ nikie đã đề cập.

Carsten Steger, Subpixel-Precise Extract of Lines and Edges, International Archives of Ph photorammetry and Remote Sensing (2000).

Bài viết có thể được tìm thấy ở đây: http://ias.in.tum.de/people/steger/publications

Khi sử dụng trang web của chúng tôi, bạn xác nhận rằng bạn đã đọc và hiểu Chính sách cookieChính sách bảo mật của chúng tôi.
Licensed under cc by-sa 3.0 with attribution required.