Pengodean pemrosesan gambar

12

Saya bertanya-tanya mana bahasa terbaik untuk pemrosesan gambar? Saya tahu MATLAB memiliki perpustakaan dan komunitas pengguna yang bagus untuk itu. Saya belum memeriksanya, itu ada untuk python juga.

Apa bahasa yang paling efisien untuk ini?

phoenix
sumber

Jawaban:

12

Ini bukan hanya tentang bahasa pemrograman tetapi perpustakaan yang Anda gunakan. Saya dapat memikirkan hal-hal berikut:

MATLAB - kemampuan pemrosesan gambar cukup baik, tetapi untuk pemrosesan lebih lanjut dan waktu nyata Anda memerlukan beberapa hal tingkat rendah. Selain itu, tidak menawarkan portabilitas yang sangat baik.

Mathematica - bagus untuk membuat prototipe dan visualisasi cepat, tapi itu semua menurut pendapat saya.

OpenCV - Saya pikir ini adalah perpustakaan paling populer di komunitas IP. Kemampuan luar biasa ( komputasi GPU, modul Machine Learning, GUI - apa lagi yang Anda butuhkan? ), Cepat, dan masih dalam pengembangan (jadi bug minor dihapus dengan sangat cepat). Mengenai komunitas - besar! Terutama untuk pemrograman C / C ++, tetapi juga Python (mungkin cocok untuk Anda).

JAI - Java Advanced Imaging - hanya jika Anda suka Java. Secara pribadi, saya tidak suka itu.

ImageMagick - Anda dapat menggunakannya dengan banyak bahasa pemrograman, periksa API .

CxImage - bagus jika Anda ingin membuat sesuatu yang lebih baik daripada MS Paint dan dengan beberapa fungsi Photoshop.

CImg - jelas untuk digunakan dengan C ++, tetapi OpenCV masih lebih baik.

PIL - Pustaka spesifik Python dengan banyak fungsi. Jika Anda menyukainya maka Anda bisa melihat lebih dekat.

SimpleCV - pada dasarnya itu adalah OpenCV python binding dengan beberapa tweak. Sangat mudah digunakan dan cukup efisien.

scikit-image - juga perpustakaan Python, tetapi menurut saya lebih buruk daripada SimpleCV (meskipun teman saya tidak akan setuju untuk itu). Salah satu kelebihannya adalah mereka menyertakan fitur DAISY extractor - cukup berguna jika Anda membutuhkan fitur yang padat.

GIL - bagian dari Boost , tetapi kurang fungsional dibanding OpenCV. Meskipun jika Anda suka dan menggunakan Boost maka untuk beberapa fungsi dasar itu harus ok.

RESIL - kelanjutanproyek DevIL . Keuntungan utama beroperasi pada banyak format file, termasuk beberapa file game.

PINK - aslinya ditulis dalam C ++. Baru-baru ini saya mencobanya dan itu sangat menyenangkan untuk dikerjakan. Integrasi hebat dengan Python dan cepat dalam embedded C. Selain itu mereka memiliki banyak algoritma yang bagus.

Jelas, ada lebih banyak pustaka Pengolah Gambar, tetapi ini adalah perpustakaan yang pernah saya hubungi. Jadi jika Anda ingin memulai dengan sesuatu, maka pilih OpenCV (lebih disukai dengan kerangka C ++) - Anda tidak akan menyesal! Di sisi lain, jika keterampilan pemrograman Anda tidak kuat, maka Anda mungkin ingin berpikir tentang menggunakan pustaka berbasis Python - sangat mudah dipelajari dan diatur.

jojek
sumber
2

MATLAB adalah bahasa terbaik untuk mempelajari pemrosesan gambar. (itu menurut saya)

Mudah dipelajari, perangkat keras independen, lebih fleksibel daripada bahasa apa pun yang dikompilasi, mungkin lebih efisien daripada bahasa skrip (karena dll yang melekat dioptimalkan untuk pemrosesan sinyal di tingkat mesin), ia memiliki dukungan akademik dan teknik yang baik.

C / C ++ adalah bahasa terbaik untuk membuat aplikasi pemrosesan gambar mandiri. Di bawah rangkaian IDE Anda, Anda dapat menghasilkan kode asli yang paling efisien. Dan IDE untuk C ++ menyediakan fitur debug tingkat mesin yang lebih baik.

Beberapa bahasa skrip juga digunakan. Mereka memang fleksibel, portabel, bahkan sangat efisien, namun debugging mungkin tidak mudah pada level rendah.

Juga kemampuan pemrosesan GPU baru dari CUDA, OpenCL dll membuat peningkatan dramatis dalam throughput komputasi. (Namun mereka lebih sulit dipelajari karena Anda harus mengetahui arsitektur perangkat keras pipa GPU yang mendasari untuk memanfaatkan setiap keuntungan efisiensi)

Fat32
sumber
-1

Jika Anda ingin menggulirkan algoritme atau kode Anda sendiri, sertakan OpenCL, karena banyak kernel pemrosesan gambar "paralel memalukan".

Atau, di Big Iron, Fortran masih mengalahkan sebagian besar bahasa lain pada kinerja vektor numerik.

hotpaw2
sumber