installation etiketine sahip kayıtlar gösteriliyor. Tüm kayıtları göster
installation etiketine sahip kayıtlar gösteriliyor. Tüm kayıtları göster

1 Nisan 2020 Çarşamba

Qt Android Kurulumu

Qt Android Kurulumu


Qt, birden çok platformu destekleyen (cross-platform) masaüstü, gömülü sistem ve mobil ortamlar için grafiksel kullanıcı arayüzü geliştirmemizi sağlayan bir araçtır.
Aslında Qt'yi sadece arayüz hazırlama programı olarak nitelendirmek Qt'ye yapılmış büyük haksızlıktır. Qt içerisinde çok gelişmiş C++ modülleri, sınıfları vardır. Qt ile kullanıcı arayüzü geliştirmek için C++ programlama dili kullanılmaktadır. Qt'nin bana göre en önemli avantajı birçok işletim sisteminde (Windows, Linux, Mac) kullanılabiliyor olmasıdır (cross-platform özelliği).
Qt'nin ticari ve açık kaynak (open source) olmak üzere 2 çeşit lisansı mevcuttur. Hobi amaçlı kullanım ücretsizdir.
Algoritma geliştirirken veya test ederken bir arayüz hazırlayarak onun üzerinde çalışmanın işleri kolaylaştırdığını, zaman kazandırdığını ve sonuçları daha iyi yorumlama fırsatı sunduğunu düşünüyorum. Ben genelde bu sebeple Qt'yi kullanıyorum. Ayrıca ağ bağlantısı olan cihazların uzaktan kullanılması için Qt ile Android işletim sisteminde çalışan mobil uygulamalar geliştiriyorum.
Bu kurulum ile amacımız masaüstü için daha önceden hazırladığımız programların android işletim sistemine sahip cep telefonunda çalıştırmaktır. Tamamiyle Android uygulama geliştirmek değildir. Zaten Qt'yi biliyorsanız ve mobil uygulama geliştirme ihtiyacınız varsa sıfırdan başka bir programlama dili veya program öğrenmeden mevcut bilgimizi kullanarak geliştirdiğimiz masaüstü uygulamaları Android işletim sisteminde çalıştırılabilir hale getirmektir.
Bu yazımızda Android işletim sisteminde çalışacak mobil uygulamalar için Qt kurulumunu gerçekleştireceğiz. Kurulumu yaptıktan sonra hazırlamış olduğum Ücretsiz Qt Derslerini izleyerek Qt ile ihtiyacınız olan mobil uygulamaları geliştirebilirsiniz.


1. Qt'yi Tanıyalım

Qt ile birlikte sıklıkla kullanılan Qt Creator ve Qt Designer araçları bu bölümde kısaca tanıtılacaktır.

1.1. Qt Creator Nedir ?

Qt Creator, Qt ile daha rahat ve daha kolay arayüz geliştirmenizi sağlayan Bütünleşik Geliştirme Ortamı (Integrated Development Environment, ide) olarak adlandırılır. Qt Creator ile içerisinde barındırdığı araçlar sayesinde proje oluşturmak ve burada saymakla bitiremeyeceğim bir çok ayarı yapmanız çok kolaydır. Qt Creator, içerisinde aynı zamanda Qt Designer'ı da içermektedir. Qt Designer ise sürükle-bırak tekniği ile arayüz tasarımı yapmanızı sağlayan tasarım aracıdır. Qt'de arayüz tasarımı için 2 seçenek vardır. Qt Designer aracında sürükle-bırak kolaylığı ile tasarım yapılabildiği gibi kod yazarak da tasarım yapılabilir.


Zaman içerisinde farklı logolar kullanılsa da genelde Qt Creator için aşağıdaki logo kullanılmaktadır.


1.2. Qt Designer Nedir ?

Qt Designer, tek başına da kurulup kullanılabildiği gibi Qt Creator içerisinde de kullanılabilmektedir. Eğer Qt Creator kullanıyorsanız Qt Creator içerisindeki Qt Designer işinizi görecektir. Ayrıca Qt Designer kurmanıza gerek yok. Genel olarak aşağıdaki ikon Qt Designer ikonu olarak kullanılmaktadır.


Qt Designer'da arayüz elemanları widget box olarak adlandırılan ekranın sol bölümünde yer almaktadır. Buradan seçilen arayüz elemanı aşağıda gösterildiği gibi sürükle-bırak tekniği ile arayüz tasarımına eklenmektedir. Daha detaylı bilgilere Ücretsiz Qt Derslerini izleyerek ulaşabilirsiniz.


2. Qt Android Kurulumu

Qt Android kurulumunu aşağıdaki adımları takip ederek gerçekleştireceğiz.

2.1. Mevcut Qt Kurulumunun Kontrol Edilmesi

Bu adımda eğer daha önceden bilgisayarınıza Qt kurulumu gerçekleştirdiyseniz ( Windows için Qt Kurulumu , Ubuntu (Linux) için Qt Kurulumu ), bu kurulumun Android için mobil uygulama geliştirmeye yeterli olup olmadığı kontrol edilecektir.
Bunun için öncelikle Qt Creator açılır ve üst bölümde yer alan Tools sekmesinde Options seçeneğine tıklanır.


Açılan pencerede sol bölümde yer alan Build & Run seçilir. Bu bölümde yer alan Kits ve Qt Versions sekmelerinde aşağıdaki ekran görüntüsünde yer alan Android ile alakalı bölümler yoksa mevcut kurulumunuz ile Android işletim sistemi için mobil uygulama geliştiremezsiniz.



Android kurulumu olmayan MinGW32 kurulumu olan Qt kurulumu için Kits ve Qt Versions sekmelerinde aşağıdaki ekran görüntüsüne benzer bir sonuç elde edersiniz.



2.2. Qt Android Kurulumu

Qt Android kurulumu için elimizde aşağıdaki şemada gösterildiği gibi 2 seçenek mevcuttur. Eğer Android konfigürasyonu olmayan mevcut Qt kurulumumuz varsa bu kuruluma sonradan MaintenanceTool ile Android konfigurasyonu ekleyebiliriz. 2. seçenek ise sıfırdan içerisinde Android konfigürasyonu barındıracak şekilde Qt kurulumunu gerçekleştirmektir.


Bu 2 farklı kurulum yöntemi detaylı olarak yazının sonunda yer alan videoda açıklanmıştır ve kurulumlar adım adım gerçekleştirilmiştir. Her 2 yöntem için ortak olan Qt kurulumu sırasında yer alan Android konfigürasyon ekleme adımı aşağıdaki ekran görüntüsünde gösterilmiştir. Bu adıma ulaşmak için önceki yazılarımı inceleyebilirsiniz ( Windows için Qt Kurulumu , Ubuntu (Linux) için Qt Kurulumu ).


2.3. JDK - NDK - SDK Kurulumları

Bir önceki adımda yapmış olduğumuz işlem ile Qt'ye dedik ki "Ben Android ile mobil uygulama geliştirmek istiyorum kendini buna göre ayarla" ve Qt kendisini Android ile çalışacak şekilde ayarladı. Şimdi Qt bize diyor ki "Ben kendimi Android ile çalışacak şekilde ayarladım şimdi benim ihtiyaç duyduğum dış kaynaklı araçları kurman gerekiyor".
Biz de Qt'nin sözlerini dikkate alarak onun ihtiyaç duyduğu dış kaynaklı araçları kurma işlemine geçiyoruz. Bunun için öncelikle daha önce yaptığımız gibi Qt Creator açılır ve üst bölümde yer alan Tools sekmesinde Options seçeneğine tıklanır.


Açılan pencerede sol bölümde yer alan Devices seçilir ve bu seçimle birlikte güncellenen pencerede üst bölümde yer alan Android sekmesi seçilir. Açılan ekran hem Qt nin ihtiyaç duyduğu araçları JDK (Java Development Kit), NDK (Native Development Kit), SDK (Software Development Kit) hem de bu araçları yüklemeniz için ihtiyaç duyduğunuz kaynaklara yönlendirmeler içermektedir.


Bu araçların yüklenme işlemi detaylı olduğu ve yazı ile anlatmak zahmetli olduğu için burada anlatılmayacaktır. Yazının sonunda yer alan videoda detaylar ve kurulumlar mevcuttur.
Qt Android kurulumunda en zahmetli olan şey burada yer alan paketlerin ve Qt versiyonunun birbirleriyle uyumlu olarak çalışan versiyonlarını denk getirmektir.
Aşağıdaki tabloda birbirleriyle uyumlu çalışan paket versiyonları gösterilmektedir.

Qt Creator 4.6.2
Qt 5.11.1 veya 5.12.0
JDK (Java Development Kit) 8u241
NDK (Native Development Kit) r10e
SDK (Software Development Kit) 26.1.1


2.4. Qt ile Mobil Uygulama Geliştirme

Qt Android kurulumunu ve birbiri ile uyumlu olarak çalışan ihtiyaç duyulan paket kurulumlarını başarılı bir şekilde yaptıktan sonra Qt ile mobil uygulama geliştirme aşamasına geçebiliriz. Qt ile aşağıdaki şemadan da görüleceği gibi Qt Widgets ve Qt Quick olmak üzere 2 farklı yapıda uygulama geliştirebilmektedir.


Qt Quick yapısı, Qt içerisine sonradan dahil olan ve daha çok mobil (cep telefonu, tablet) uygulama geliştirmek için kullanılan ve içerisinde Javascript sözdizimine (syntax) benzeyen QML (Qt Modeling Language) dili kullanılan yapıdır. Qt Widgets, Qt içerisinde Qt Quick yapısından önce var olan ve daha çok Masaüstü uygulama geliştirmek için kullanılan C++ programlama dilini kullanan yapıdır. Qt Widgets daha çok masaüstü uygulamalar için kullanılsa da Qt Widgets ile geliştirmiş olduğunuz uygulamayı mobil platformlarda herhangi bir sıkıntı ile karşılaşmadan rahatça kullanabilirsiniz.


29 Ekim 2018 Pazartesi

OpenCV (Python) Kütüphanesinin Windows'a Kurulumu

OpenCV (Python) Kütüphanesinin (Extra Modülü - Contrib ile) Windows'a Kurulumu


OpenCV (Open Source Computer Vision Library) açık kaynak kodlu Bilgisayarla Görme kütüphanesidir. Hem akademik hem de ticari amaç için kullanımı ücretsizdir. C++, Python ve Java programlama dilleriyle Windows, Linux, Mac OS, iOS ve Android işletim sistemlerinde kullanılabilmektedir. OpenCV ile görüntü işleme (image processing), makine öğrenmesi (machine learning), bilgisayarla görme (computer vision), derin öğrenme (deep learning) alanlarında algoritma, uygulama geliştirebilirsiniz. Bunun için OpenCV size çok sayıda algoritmayı fonksiyon şeklinde kullanmanızı sağlayan imkanlar sunmaktadır. Yapmanız gereken tek şey dökümanlardan ilgili fonksiyonun aldığı parametre ve girdileri doğru vererek sonuçlarını doğru bir şekilde almak. Burada OpenCV'nin Python programlama dili ile kullanılması için yapılması gereken derleme işlemi (kurulum) gerçekleştirilecektir. Kurulum virtualenvwrapper kullanılarak oluşturulan sanal ortama yapılacaktır. Python Sanal Ortam virtualenvwrapper Kurulumu için önceki yazımdan faydalanabilirsiniz. Derleme için Cmake programından faydalanılacaktır. Ayrıca bu kurulum (derleme) esnasında OpenCV'nin extra modülü olarak anılan contrib modülü de derleme işlemine dahil edilecektir. OpenCV contrib içerisinde yer alan modüllere buradan bakabilirsiniz.



1. pip Komutu ile Kurulum

Adım 1.1.
Yeni bir terminal açıp aşağıdaki komutu çalıştırarak yeni bir Python3 sanal ortamı oluşturuyoruz.


mkvirtualenv opencv_3.4.3_pip -p python



Burada sanal ortamınıza istediğiniz ismi verebilirsiniz, ben opencv_3.4.3_pip ismini kullandım. Oluşturduğunuz sanal ortamdan deactivate komutuyla çıkabilir ve workon komutuyla tekrar oluşturduğunuz sanal ortama giriş yapabilirsiniz.


Adım 1.2.
Yeni oluşturulan sanal ortama geçiş yaptıktan sonra NumPy Python paketini bu aşamada sanal ortamınıza aşağıdaki komutu çalıştırarak kurmanız gerekmektedir.


pip install numpy



Adım 1.3.
Python kütüphanelerinin yer aldığı ve pip ile kolay kurulum yapmamızı sağlayan PyPI sitesinde opencv veya opencv ve contrib kütüphanelerininin kurulum dökümanlarını inceleyebilirsiniz. OpenCV için oluşturduğumuz yeni ortam içerisindeyken aşağıdaki komut çalıştırılarak Python programlama dili için OpenCV-Contrib kurulumu gerçekleştirilir.


pip install opencv-contrib-python





OpenCV'nin Extra modülü olan Contrib kurulumu yapmak istemiyor sadece OpenCV kurulumu yapmak istiyorsanız aşağıdaki kodu çalıştırabilirsiniz.



pip install opencv-python


Adım 1.4.
Son aşamada kurulumun başarılı olup olmadığının test edilmesi var. Sanal ortamınıza kurulan paketleri lssitepackages komutunu çalıştırarak görebilirsiniz. Bu komutu çalıştırdığımızda OpenCV ve NumPy kütüphanesinin kurulu olduğunu görüyoruz. Ancak emin olmak için Python ortamına geçiş yapıp OpenCV kütüphanesini koda eklemek (import etmek) gerekiyor. Eğer hata almıyorsak kurulum başarılıdır. Ayrıca aşağıdaki komutu çalıştırarak hangi OpenCV versiyonunu kullandığınızı öğrenebilirsiniz.


1
2
import cv2
cv2.__version__



2. Kaynak Kodlarından cmake ile Kurulum


Adım 2.1.
OpenCV kütüphanesinin sitesinde ki releases sayfasından istediğiniz versiyonunun "Sources" linkinde yer alan kaynak kodlarını indiriniz. (Bu kurulum (derleme) için OpenCV 3.4.3 versiyonu kullanılacaktır, aşağıdaki ekran görüntüsünden de göreceğiniz gibi aslında son versiyon olarak 4.0.0-alpha çıkmış bulunmaktadır ancak son çıkan versiyonlarda bir takım hatalar çıkmaktadır bu hatalar zamanla düzeltilerek daha kararlı bir hale geldikten sonra kullanılmasını tavsiye ederim.)


Adım 2.2.
İndirilen sıkıştırılmış dosya (opencv-3.4.3.zip) çıkarılır. opencv-3.4.3 klasörü içerisinde "source" ve "build" adında 2 yeni boş klasörler oluşturulur ve opencv-3.4.3 klasörü içerisinde yer alan diğer tüm dosyalar "source" klasörü içerisine taşınır.





Adım 2.3.
OpenCV ekstra modüllerinin yer aldığı Contrib dosyası github sayfasından indirilir. Burada dikkat etmeniz gereken nokta kurulumunu yapacağınız OpenCV versiyonuyla aynı versiyondaki contrib dosyasını indirmek olacaktır. Burada OpenCV-3.4.3 kurulumu yapacağımız için opencv_contrib-3.4.3 klasörü indirildi ve sıkıştırılmış dosya çıkartıldı.



Adım 2.4.
Yazının giriş bölümünde bahsettiğim gibi kurulumu sanal ortama yapacağız ve sanal ortam oluşturmak için virtualenvwrapper kullanacağız. Python Sanal Ortam virtualenvwrapper Kurulumu için önceki yazıma bakmanızı tavsiye ederim. mkvirtualenv komutuyla "opencv_3.4.3" adında yeni bir Python 3 sanal ortamı oluşturuyoruz. Burada sanal ortamınıza istediğiniz ismi verebilirsiniz. Oluşturduğunuz sanal ortamdan deactivate komutuyla çıkabilir ve workon komutuyla tekrar oluşturduğunuz sanal ortama giriş yapabilirsiniz.




Adım 2.5.
Yeni oluşturulan sanal ortama geçiş yaptıktan sonra ileride ihtiyaç duyacağımız NumPy Python paketini bu aşamada sanal ortamınıza aşağıdaki komutu çalıştırarak kurmanız gerekmektedir.


pip install numpy


Sanal ortamınıza kurulan paketleri lssitepackages komutunu çalıştırarak görebilirsiniz. Bu komutu çalıştırdığımızda NumPy paketinin sanal ortamımıza başarılı bir şekilde kurulduğunu görüyoruz.



Adım 2.6.
Kurulum için cmake-gui'den faydalanacağız. Öncelikle sitesinden işletim sisteminizin 32 bit ya da 64 bit olmasına göre .zip uzantılı cmake dosyası indirilir. İndirilen skıştırılmış dosya çıkarılır ve klasörün bulunduğu yolu Ortam değişkenlerine (Environmental Variables) eklenir. Cmake için kurulum gerekmez. Tek yapmanız gereken ilgili dosyayı indirip, çıkartmak ve dosya yolunu ortam değişkenlerine eklemek.




Adım 2.7.
Terminal açılır ve kurulumu yapacağımız, yeni oluşturduğumuz sanal ortama geçiş yapılır ve cmake-gui komutu çalıştırılarak sanal ortamınızda cmake-gui açılır. Burada cmake-gui'yi sanal ortamınızdan açmanız dikkat edilmesi gereken bir noktadır. Eğer sanal ortamdan açmazsanız, sanal ortamdaki Python ve paketlerini değil de, işletim sisteminizde mevcut bulunan Python ve paketlerini görür. Bu durumda bu klasör yollarını el ile düzeltmeniz gerekir. Tüm bunlarla uğraşmamak için cmake-gui'yi sanal ortamınızdan açmaya dikkat edin. Cmake-gui açıldıktan sonra;
  • "Where is the source code:" yazan bölümde opencv-3.4.3 klasöründe oluşturduğumuz "source" klasörü "Browse Source ..." butonuna basılarak seçilir.
  • "Where to build the binaries:" yazan bölümde opencv-3.4.3 klasöründe oluşturduğumuz "build" klasörü "Browse Build ..." butonuna basılarak seçilir.

ve aşağıda yer alan "Configure" butonuna basılır.



Adım 2.8. "Configure" butonuna bastıktan sonra yeni bir pencere açılacaktır. Bu pencerede derleme işlemi için kullanılacak derleyicinin seçilmesi istenmektedir. Burada bilgisayarınızda kurulu bulunan derleyicilere göre size seçenekler sunulacaktır. Eğer Visual Studio kurulu ise MSVC derleyicisini kullanabilirsiniz. Ya da Qt kurulumu ile birlikte kurulan MinGW derleyicisini kullanabilirsiniz.


Adım 2.9.1.
Derleyiciyi seçtikten sonra konfigürasyon işlemi başlayacaktır. "Configuration done" mesajını görene kadar bekleyiniz. Konfigurasyon işlemi sırasında OpenCV kütüphanesi ile kullanılabilecek diğer araçların bilgisayarınızda kurulu olup olmadığına bakılır ve sonunda size bunlar hakkında bilgiler verir. Bu kısım aslında çok detaylı bilgiler içermektedir ve hepsini tek tek açıklamak mümkün değildir. Şu an konfigurasyona dahil edilmeyen ancak ileride OpenCV'nin bir modülünü kullanmak istediğinizde bir takım eksik araçlardan kaynaklanan hatalar aldıkça hangi araçlara nerede ne zaman ihtiyaç duyacağınızı daha iyi anlayacaksınız.


Adım 2.9.2.
OpenCV'nin extra modüllerini (opencv contrib) yüklemek için OPENCV_EXTRA_MODULES_PATH özelliğinde indirmiş olduğumuz opencv_contrib-3.4.3 klasörü içerisinde yer alan modules klasörünün yolu tanımlanır.


Adım 2.9.3.
OpenCV algoritmalarını özellikle Derin Öğrenme (Deep Neural Network) algoritmalarını GPU üzerinde çalıştırmak için işletim sisteminize CUDA ve cuDNN kurulumlarının yapılmış olması gerekmektedir. Eğer kurulumlar işletim sisteminizde mevcut ise WITH_CUDA özelliğini aktif hale getiriniz.



Adım 2.9.4.
Eğer OpenCV ile birlikte Python örneklerinin de derlenmesini istiyorsanız BUILD_EXAMPLES ve INSTALL_PYTHON_EXAMPLES özellikleri AKTİF hale getirilirken INSTALL_C_EXAMPLES özelliği PASİF duruma getirilir.


Adım 2.9.5.
Cmake-gui'de PYTHON ile ilgili tüm özellikleri aşağıdaki ekran görüntüsünde görebilirsiniz. Buradan PYTHON2, PYTHON3 tercihlerinizi ayarlayabilirsiniz. Bizim amacımız PYTHON3 ile sanal ortama kurulum yapmak olduğundan PYTHON3_EXECUTABLE özelliğinde belirtilen klasör yolunun bizim oluşturduğumuz sanal ortamda bulunan python3 için doğru olmasıdır. Bununla birlikte PYTHON3_INCLUDE_DIR ve PYTHON3_NUMPY_INCLUDE_DIRS özelliklerinde doğru klasör yolunun belirtildiğine dikkat edin. Son olarak PYTHON3_PACKAGES_PATH değişkeninde yazan klasör yolunu unutmamamız gerekir, çünkü derleme işlemi sonunda OpenCV kütüphanesi burada belirtilen burada belirtilen adreste oluşturulacaktır.

Tüm bu işlemlerden sonra "Configure" butonuna birkez daha basılır "Configuring done" mesajını gördükten sonra "Generate" butonuna basılır.



Adım 2.10.
"Generating done" mesajını gördükten sonra, kurulumu tamamlamak için "build" klasörüne geçilir. Eğer derleyici olarak MSVC seçtiyseniz bu klasör içerisinde OpenCV.sln adında MSVC proje dosyası (Solution) oluşacaktır. Bu dosyaya çift tıklayarak Visual Studio'da açın.


Adım 2.11.
Visual Studio açıldıktan sonra Build sekmesine tıklayın. Daha sonra bu sekme içerisinde yer alan Batch Build... seçeneğine tıklanır. Bu seçeneğe tıkladığınızda yeni bir pencere açılacaktır.


Açılan pencerede ALL_BUILD ve INSTALL seçeneklerini aktif hale getiriyoruz ve Build butonuna basıyoruz.


Derleme işlemi başlayacaktır ve bitene kadar beklemeniz gerekir. Bu işlem kuruluma dahil ettiğiniz bölümlere göre çok uzun sürebilir. Derleme işlemi bittiğinde cmake-gui'de bahsettiğimiz PYTHON3_PACKAGES_PATH değişkeninde tanımlı adreste cv2 ile başlayan ".pyd" uzantılı bir dosya oluşması gerekir. Bu dosya oluştuysa derleme işlemi başarılıdır. Aynı dosya opencv-3.4.3\build_msvc_64\lib\python3\Release klasöründe de bulunmaktadır.


Adım 2.12.
Hata almadan OpenCV kütüphanesini Python ortamına eklemek için build klasörü içerisinde bulunan opencv-3.4.3\build\bin\Release klasör yolu Ortam değişkenleri (Environmental Variables) eklenmelidir.


Adım 2.13.
OpenCV'yi, oluşturduğumuz sanal ortamda kullanmak için sanal ortam klasörü içerisinde yer alan opencv-3.4.3\Lib\site-packages klasörüne Adım 2.11'de bahsettiğimiz ".pyd" uzantılı dosyayı kopyalamamız gerekiyor. Bu işlemin ardından kurulumu test etmek için terminalde sanal ortama geçiş yapılır. Sanal ortam içerisindeyken Python ortamına geçilir ve aşağıdaki kod parçası çalıştırılır. Eğer hata almıyorsak kurulum başarılıdır.



1
2
import cv2
cv2.__version__


Python programlama dili için OpenCV kütüphanesinin kurulumunu Windows işletim sistemine 2 farklı yöntemle gerçekleştirmiş olduk. Eğer algoritmalarınızı GPU üzerinde CUDA ile çalıştırmak istiyorsanız ya da ihtiyaç duyduğunuz araçlar için ekleme çıkarma işlemi yaparak derleme işlemini kendinize özgü hale getirmek istiyorsanız 2. yöntemi tercih etmenizi öneririm.