Mã hóa xử lý hình ảnh


12

Tôi đã tự hỏi đâu là ngôn ngữ tốt nhất để xử lý hình ảnh? Tôi biết MATLAB có một thư viện và cộng đồng người dùng tốt cho nó. Tôi chưa kiểm tra nó, nó cũng có cho trăn.

Ngôn ngữ hiệu quả nhất cho việc này là gì?

Câu trả lời:


12

Đó không chỉ là về ngôn ngữ lập trình mà cả thư viện bạn đang sử dụng. Tôi có thể nghĩ về những điều sau đây:

MATLAB - khả năng xử lý hình ảnh khá ok, nhưng để xử lý thời gian thực và nâng cao hơn, bạn sẽ cần một số công cụ cấp thấp. Ngoài ra, nó không cung cấp tính di động rất tốt.

Mathematica - tốt cho tạo mẫu và hình dung nhanh, nhưng đó là tất cả trong quan điểm khiêm tốn của tôi.

OpenCV - Tôi nghĩ rằng đây là thư viện phổ biến nhất trong cộng đồng IP. Các khả năng tuyệt vời ( điện toán GPU, mô-đun Machine Learning, GUI - bạn còn cần gì nữa không? ), Nhanh và vẫn đang được phát triển (vì vậy các lỗi nhỏ đang được loại bỏ rất nhanh). Về cộng đồng - thật lớn! Chủ yếu để lập trình C / C ++, nhưng cũng có Python (có lẽ phù hợp với bạn).

JAI - Hình ảnh nâng cao Java - chỉ khi bạn thích Java. Cá nhân, tôi không thích nó.

ImageMagick - bạn có thể sử dụng nó với nhiều ngôn ngữ lập trình, kiểm tra API .

CxImage - tốt nếu bạn muốn tạo ra thứ gì đó tốt hơn MS Paint và với một số chức năng của Photoshop.

CImg - rõ ràng là được sử dụng với C ++, nhưng OpenCV vẫn tốt hơn.

PIL - Thư viện cụ thể Python với nhiều chức năng. Nếu bạn thích nó thì bạn có thể xem xét kỹ hơn.

SimpleCV - về cơ bản nó là liên kết python OpenCV với một số điều chỉnh. Rất dễ sử dụng và khá hiệu quả.

scikit-image - cũng là thư viện Python, nhưng theo tôi thì tệ hơn SimpleCV (mặc dù bạn tôi không đồng ý với điều đó). Một lợi thế là chúng bao gồm trình trích xuất các tính năng DAISY - khá hữu ích nếu bạn cần các tính năng dày đặc.

GIL - một phần của Boost , nhưng ít chức năng hơn OpenCV. Mặc dù nếu bạn thích và sử dụng Boost thì đối với một số chức năng cơ bản thì vẫn ổn.

ResIL - tiếp tụcdự án DevIL . Một lợi thế lớn là hoạt động trên nhiều định dạng tệp, bao gồm một số tệp trò chơi.

HỒNG - ban đầu được viết bằng C ++. Gần đây tôi đã thử nó và nó rất dễ chịu để làm việc với. Tích hợp tuyệt vời với Python và nhanh chóng được nhúng C. Ngoài ra, chúng còn có rất nhiều thuật toán hay.

Rõ ràng, có nhiều thư viện Xử lý hình ảnh hơn, nhưng đây là những thư viện tôi đã liên hệ. Vì vậy, nếu bạn muốn bắt đầu với một cái gì đó, thì hãy chọn OpenCV (tốt nhất là với khung C ++) - bạn sẽ không hối tiếc! Mặt khác, nếu kỹ năng lập trình của bạn không mạnh, thì bạn có thể muốn nghĩ về việc sử dụng các thư viện dựa trên Python - thực sự dễ học và thiết lập.


2

MATLAB là ngôn ngữ tốt nhất để học xử lý hình ảnh. (đó là ý kiến ​​của tôi)

Nó đơn giản để học, độc lập với phần cứng, linh hoạt hơn bất kỳ ngôn ngữ được biên dịch nào, có thể hiệu quả hơn ngôn ngữ script (do các dll vốn có của nó được tối ưu hóa để xử lý tín hiệu ở cấp độ máy), nó có hỗ trợ học thuật và kỹ thuật tốt.

C / C ++ là ngôn ngữ tốt nhất để tạo các ứng dụng độc lập xử lý ảnh. Trong bộ IDE của bạn, bạn có thể tạo mã gốc hiệu quả nhất. Và IDE cho C ++ cung cấp các tính năng gỡ lỗi cấp máy tốt hơn.

Một số ngôn ngữ script cũng đang được sử dụng. Chúng thực sự linh hoạt, di động, thậm chí hiệu quả đáng kể, tuy nhiên việc gỡ lỗi có thể không dễ dàng ở mức độ thấp.

Ngoài ra khả năng xử lý GPU mới của CUDA, OpenCL, vv làm tăng đáng kể thông lượng tính toán. (Tuy nhiên, chúng khó học hơn vì bạn nên biết về kiến ​​trúc phần cứng đường ống GPU bên dưới để sử dụng bất kỳ mức tăng hiệu quả nào)


-1

Nếu bạn muốn cuộn các thuật toán hoặc mã của riêng mình, thì hãy bao gồm OpenCL, vì nhiều hạt xử lý hình ảnh là "song song lúng túng".

Hoặc, trên Big Iron, Fortran vẫn đánh bại hầu hết các ngôn ngữ khác ở hiệu suất vectơ số.

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.