Görüntü işleme kodlaması


12

Görüntü işleme için hangisinin en iyi dil olduğunu merak ediyordum? MATLAB'ın bunun için iyi bir kütüphane ve kullanıcı topluluğu olduğunu biliyorum. Ben kontrol dışarı sığınak, orada da python için.

Bunun için en verimli dil nedir?

Yanıtlar:


12

Sadece programlama dili değil, kullandığınız kütüphane ile ilgili. Aşağıdakileri düşünebilirim:

MATLAB - görüntü işleme yetenekleri gayet iyi, ancak daha gelişmiş ve gerçek zamanlı işlem için bazı düşük seviyeli şeylere ihtiyacınız olacak. Ayrıca, çok iyi taşınabilirlik sunmaz.

Mathematica - prototipleme ve hızlı görselleştirme için iyi, ama hepsi benim düşünceme göre.

OpenCV - Bence bu IP topluluğunun en popüler kütüphanesi. Büyük yetenekler ( GPU hesaplama, Makine Öğrenimi modülü, GUI - başka neye ihtiyacınız var? ), Hızlı ve hala geliştirilme aşamasında (bu nedenle küçük hatalar çok hızlı bir şekilde kaldırılıyor). Topluluk ile ilgili - büyük! Temelde C / C ++ programlama için, aynı zamanda Python (muhtemelen size uygun).

JAI - Java Gelişmiş Görüntüleme - yalnızca Java'yı seviyorsanız. Şahsen, sevmiyorum.

ImageMagick - birçok programlama diliile kullanabilirsiniz, API'yi kontrol edin.

CxImage - MS Paint'ten ve Photoshop'un bazı işlevleriyle daha iyi bir şey oluşturmak istiyorsanız iyi.

CImg - açıkça C ++ ile kullanılacak, ancak OpenCV hala daha iyi.

PIL - Birçok işlevselliğe sahip Python'a özgü kitaplık. Eğer isterseniz o zaman daha yakından bakabilirsiniz.

SimpleCV - temel olarak bazı tweaks ile OpenCV python bağlamasıdır. Kullanımı çok kolay ve oldukça verimlidir.

scikit-image - ayrıca Python kütüphanesi, ama bence SimpleCV'den daha kötü (arkadaşım bunu kabul etmese de). Bir avantajı DAISY özellikleri çıkarıcı içermesidir - yoğun özelliklere ihtiyacınız varsa oldukça yararlıdır.

GIL - parçası Boost ama OpenCV daha az işlevsel. İsterseniz ve Boost kullanıyorsanız, o zaman bazı temel işlevler için tamam olmalıdır.

ResIL - DevIL projesinindevamı. Bazı oyun dosyaları da dahil olmak üzere birçok dosya biçiminde önemli bir avantaj.

PEMBE - başlangıçta C ++ ile yazılmıştır. Son zamanlarda denedim ve çalışmak çok hoş oldu. Python ile mükemmel entegrasyon ve gömülü C'de hızlı. Bunun dışında bol miktarda güzel algoritma var.

Açıkçası, çok daha fazla Görüntü İşleme kütüphanesi var, ancak bunlar iletişim kurduğum kütüphaneler. Yani bir şeyle başlamak istiyorsanız, OpenCV'yi seçin (tercihen C ++ çerçevesi ile) - pişman olmayacaksınız! Öte yandan, programlama becerileriniz güçlü değilse, Python tabanlı kütüphaneleri kullanmayı düşünmek isteyebilirsiniz - öğrenmesi ve ayarlaması gerçekten kolaydır.


2

MATLAB görüntü işlemeyi öğrenmek için en iyi dildir. (benim fikrim)

Öğrenmesi basit, donanımdan bağımsız, herhangi bir derlenmiş dilden daha esnek, komut dosyası dillerinden daha verimli (makine düzeyinde sinyal işleme için optimize edilmiş doğal dll'ler nedeniyle), iyi akademik ve mühendislik desteğine sahiptir.

C / C ++, görüntü işlemenin bağımsız uygulamalarını oluşturmak için en iyi dildir. IDE paketiniz altında en verimli yerel kodu oluşturabilirsiniz. C ++ için IDE'ler daha iyi makine düzeyinde hata ayıklama özellikleri sağlar.

Bazı kod dilleri de kullanılmaktadır. Gerçekten esnek, taşınabilir, hatta oldukça verimlidir, ancak hata ayıklama düşük seviyelerde kolay olmayabilir.

Ayrıca CUDA, OpenCL vb.'nin yeni GPU işleme yetenekleri hesaplama işlemlerinde önemli artışlar sağlar. (Bununla birlikte, öğrenmeleri daha zordur, çünkü verimlilik kazanımlarından yararlanmak için temel GPU boru hattı donanım mimarisinin farkında olmalısınız)


-1

Kendi algoritmalarınızı veya kodunuzu döndürmek istiyorsanız, birçok görüntü işleme çekirdeği "utanç verici bir şekilde paralel" olduğundan OpenCL ekleyin.

Veya, Büyük Demir'de Fortran, diğer vektör dillerinin çoğunu sayısal vektör performansında yener.

Sitemizi kullandığınızda şunları okuyup anladığınızı kabul etmiş olursunuz: Çerez Politikası ve Gizlilik Politikası.
Licensed under cc by-sa 3.0 with attribution required.