Skip to content

Latest commit

 

History

History
20 lines (10 loc) · 4.58 KB

2-gelistirme-ortamlari.md

File metadata and controls

20 lines (10 loc) · 4.58 KB

Platform ve Geliştirme Ortamı Seçimi

OpenCV platform bağımsız bir kütüphanedir ve tüm platformlar için desteği bulunmaktadır. Projelerinizde kullanacağınız işletim sisteminde seçim şansınız var ise bu seçiminize yardımcı olabilmek ve platformların avantaj, dezavantajlarından bahsetmek istiyorum.

OpenCV’nin bir çok sınıfı doğrudan grafik kartı sürücülerini kullanmaktadır. Grafik kartı sürücüleri platformlara göre farklılık göstermektedirler. Örneğin OpenCV 3.x sürümü Windows işletim sistemlerinde Nvidia grafik kartına sahip bazı sistemlerde mavi ekran (blue screen) olarak adlandırılan hataya sebep olmaktadır. Grafik kartını kullanan sınıfların bazı fonksiyonları çalıştırıldığında bu hata ortaya çıkmaktadır, OpenCV soru&cevap sitesinde bu sorundan dert yanan bir çok kişiyi görebilirsiniz. Linux ve Mac platformunda ise şuan itibariyle böyle bir hata yoktur. Böylesi bir durumla karşılaştırsanız sürücü güncellemelerinizi yapmanızı çözüm bulamaz iseniz kullandığınız versiyonu veya platformu değiştirmenizi öneriririm.

Gömülü sistemlerde Raspberry Pi, OrangePi, Beaglebone, Banana Pi vb. kartlarda işletim sistemi seçerken daha önceki tecrübelerime dayanarak söyleyebilirim ki Debian Linux çatallaması işletim sistemleri çok daha performanslı çalışmaktadır.

Kitap içerisinde yer alan uygulamalar Java programlama dili çatısı altında Eclipse, Netbeans ve Android Studio ile geliştirilmiştir. Java öğrenmeye yeni başlamış birisi iseniz bu öneriler sizin içindir. Grafiksel kullanıcı arabirime (GUI) sahip, etkileşimli uygulamalar geliştirmek istiyorsanız Netbeans IDE kullanabilirsiniz. Hızlı kod geliştirmek ve çok fazla grfiksel olmayan uygulamalar için ise Eclipse IDE tercih edebilirsiniz. Yeni başlayan birisi iseniz Eclipse IDE ve size karmaşık gelebilir bu durumda Netbeans kullanabilirsiniz. Kitap içerisindeki mobil Android uygulama örnekleri ise Android Studio ile geliştirilmiştir. Tüm geliştirme ortamları için OpenCV kurulması ve ayarların yapılması anlatılacaktır.

Görüntü işleme için Java

Görüntü işleme yazılımları için performans önemli bir kriterdir. Bu yazılımlar yüksek işlemci, grafik kartı ve bellek ihtiyacı duyarlar bu yüzden kullanılan programlama dili ve seçilen platform yazılımın performansı için kritik öneme sahiptir. Daha önceleri görüntü işleme projelerinde C ve C++ programlama dilleri kullanılmaktaydı çünkü bu diller düşük seviyeli olması sebebiyle rakiplerine göre oldukça performanslıydı. Programlama dillerinin çeşitliliğinin artmasıyla birlikte bir çok dil açık kaynak oldu ve toplulukların veya firmaların desteği ile yapılan iyileştirmeler sayesinde performanslarında iyileştirilmeler yapıldı. Java programlama dili JVM’in (Java Virtual Machine) geliştirilmesiyle yazılan kodu daha iyi optimize edebilir hale geldi ve C++ programlama dili kadar performanslı çalışan kodlar üretmeye başladı.  Java programlama dilinin platform bağımsızlığı, orta seviye bir dil olması ve proje geliştirmenin oldukça hızlı olması sebebiyle önce çıkmaktadır. Web, mobil, gömülü sistem ve masaüstü projelerin geliştirilebiliyor olması da başlı başına bir seçim nedeni de olabilir. Bu bağlamda OpenCV uygulaması geliştirmede Java tercih edilmektedir. OpenCV dokumanlarına bakıldığında örnekler C++, Java ve Python ağırlıklıdır.  Son birkaç yıldır Python yazımının kolay olması, uygulama geliştirme süresini kısaltması gibi özellikleri ile programlamaya yeni başlayan kişiler tarafından kullanılarak popüler olsada performans, büyük proje gelişltirmenin zorluğu gibi sebeplerlede projelerde tercih edilmemektedir, bu durum şimdilik böyle olsada aldığı deskteler ve toplulukların katkıları ile görüntü işlemede tercih edilen bir dil haline gelebilir.

Görüntü işleme için Python

OpenCV ile yapmayı amaçladığınız şey; akadmeik araştırma projesi, prototip, ana ürüne entegrasyon gerektiren bir modül veya geliştirme sürecini hızlı tamamlamak istediğiniz bir şey ise Python programlama dili doğru bir seçim olacaktır. OpenCV kütüphanesi, neyazik ki sürekli olarak dokümantasyon takip etmenizi gerektiren bir yapıya sahip ve dokumantasyonlar genellikle Python programlama dili için hazırlanmış durumda. Yeni başlayan bir yazılım geliştirici, akademisyen, öğrenci veya programlama geçmişine sahip olmayan biri iseniz Pythın doğru seçim olacaktır.