2010-04-14 59 views
7

Tôi đang làm rất nhiều xử lý hình ảnh trong C và tôi cần một tốt, hợp lý nhẹ, và trên tất cả các thư viện thao tác ma trận FAST với một giấy phép cho phép. Tôi chủ yếu tập trung vào biến đổi affine và nghịch đảo ma trận, vì vậy tôi không cần bất cứ điều gì quá tinh vi hoặc cồng kềnh.Thư viện thao tác ma trận tốt có sẵn cho C là gì?

Chủ yếu là tôi muốn cái gì đó rất nhanh (sử dụng SSE có lẽ?), Với API sạch và (hy vọng) được đóng gói sẵn bởi nhiều hệ thống quản lý gói Unix.

Lưu ý đây là đối với C không phải cho C++.

Cảm ơn

:)

Trả lời

8

Tôi muốn nói BLAS hoặc LAPACK.

Here bạn có một số ví dụ.

+0

này sẽ rất tốt :) nhưng tôi không thể tìm thấy một nhị phân precompiled của thư viện bất cứ nơi nào cho (tiếc là ngay bây giờ) cửa sổ hệ thống của tôi. Bất kỳ ý tưởng nơi tôi có thể tìm thấy nó? – horseyguy

+0

Bắt đầu tìm kiếm ở đây: http://blogs.msdn.com/hpctrekker/archive/2009/02/24/hpc-math-attacks-blas-lapack-linpack-atlas-dgemm-acml-mkl-cuda.aspx –

+2

BLAS và LAPACK thường được coi là giao diện, giống như cách OpenGL là một giao diện với nhiều triển khai cơ bản của các nhà cung cấp thẻ đồ họa. Điều đó nói rằng, BLAS nhanh nhất hiện có là GotoBLAS2, nhưng giấy phép của nó là hạn chế. Intel và AMD cung cấp các thư viện riêng (MKL và ACML) nhưng các thư viện này cũng hạn chế. Gắn bó với các triển khai tham chiếu netlib nếu bạn muốn thực sự miễn phí. Thông thường, bạn cần tự biên dịch các bộ xử lý này để có được hiệu suất tốt nhất. –

8
+0

không, tôi muốn thao tác ma trận không thao tác hình ảnh (im viết lib thao tác hình ảnh của riêng tôi) cảm ơn mặc dù :) – horseyguy

+1

Nhìn có MATRIX MATH tốt trong đó. Ngoài ra nó đơn giản hóa việc xử lý hình ảnh. –

+0

Cảm ơn rất nhiều :) nhưng tôi thực sự * chỉ cần * thao tác ma trận, tôi đang tìm thứ gì đó nhẹ cung cấp chức năng tôi cần .. :) – horseyguy

2

Bạn có thể thử CUBLAS (thư viện CUDA Basic Linear Algebra Subroutines) với card đồ họa CUDA cho phép để làm thao tác ma trận trên nVidia GPU. Nó có hiệu suất khá đáng kể so với các thư viện CPU khác, mặc dù nó không phải là trọng lượng nhẹ theo yêu cầu của bạn.

This page chứa một số mô tả và số liệu về nó.

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