Xamarin.Forms ile Görüntü İşleme

Görüntü İşleme (Image processing)Xamarin

 

   Merhaba herkese! 🙂 Xamarin.Forms maceram sürerken yani eğitimlerini gerek blog da gerek video ile YouTube kanalımda size anlatmaya çalışırken dedim ki ben boş durmayayım, daha fazla heyecan daha fazla maceraya dalayım dedim. Bu macerada bana eşlik etmiş olacaksınız çünkü olayları sıcağı sıcağına aktarıyor olacağım. 🙂 Evet, şuan ikinci ekrandan size bu bölümü yazarken diğer ekranımda Xamarin.Forms sekmeleri doldu taştı.

Daha eğitim de yarıya bile gelememişken neden böyle bir şeye başladım, çünkü videolar ile anlatma saatlerim genellikle kısıtlı oluyor ve her zaman bunu yapamıyorum (bazen canım hiç istemiyor ama bundan sonra siz sevgili beni dinleyenleri düşüneceğim! buna emin olabilirsiniz! :)). Neyse neyse, daha fazla uzatmayacağım çünkü önümde beni bekleyen deneyim dolu macera var (ama ben yine açtığım sekmeleri karıştırırım ya :(, ondan acele ediyorum!).

Xamarin.Forms için (Xamarin.Forms yazmayacağım artık, X.F diyeceğim siz anlarsınız, parantez içini okudunuz cümlenin başını unuttunuz demi 🙂 başa dönmeyin tekrar başlayacağım cümleye).

X.F için, daha doğrusu genellikle görüntü ile alakalı bütün teknolojiler belirli kütüphaneler kullanılır. Benim çokça dalmak istediğim OpenCV var ama bunun yanında EmguCV’i de önerildi. Büyük ihtimal kendi ilerlemek istediğim alana OpenCV’ye yöneleceğim ama biraz daha araştırayım. Eğer bir alt satıra inmiş isem üst satırda dediğimi araştırıp alt satıra güncel şekilde gelmişimdir. İlk olarak şunu biliyorum, bu ikisi de X.F için kullanılabilir. İkinci olarak EmguCV’nin, Xamarin Compenent’lerinde ücretli olduğunu biliyorum, hem de ne kadar biliyor musunuz; 399$! Allah’ım inşallah OpenCV ücretsiz olur, OpenCV’yi de Compenentler’de gördüm ama fiyatına bakmadım.

Bune be! (Evet baktım ve şimdi size bildiriyorum) OpenCV’de 99$. Hemen aklıma bir yol geldi, Nuget de bence indirilebilirdir. Fiyatlarını önemsemeyeceğim, ne de olsa bir Try seçeneğimiz de varmış. Emgu’da bir oy var 5 yıldız vermiş adam, Open’da hiç yok :D. Bu benim fikrimi değiştirmedi ama ben Google’da OpenCV vs EmguCV atışması yapayım. Aslında EmguCV ile çok iyi bir geçmişim vardır.

(Fiyatları gördünüz değil mi?)

Hemen günceli geçeyim; karşıma matlab da çıktı ama yok ben illa Open VS Emgu istiyorum. Ve enter’ladığım da Türk siteleri de çıktı, onlar iyi oluyor ya. Ha Aforge da vardı, ama yok ya o genel C#için, hiç istemem. Dediğim gibi arkadaş ne zorluyorsunuz ya; Emgu veya Open istiyorum! :/

Şimdi öğrendiğim şu; OpenCV, EmguCV’nin çocuğuymuş, yani bir altıymış. Geliştiriciler amaç ve bazı şeyler için OpenCV’yi geliştirmişler. (Mesut Pişkin’e Teşekkürler! :))

Gel gelelim ben ne kullanacağım? Dediğim gibi ya Emgu ile bir geçmişim var (.VB ile) ve şuan nedense bana sempatik gelmeye başladı (gözüm sitede bir şeye takıldı da kesinlikle mesutpiskin.com’u takip edin). Dediğim gibi EmguCV sempatik çünkü 3 yıl öncesini hatırlattı, Türkçe kaynak bulamamıştım yabancı bir adamın sanırım farklı yöreden çünkü İngilizce’yi şiveli konuşuyordu onu dinliyordum ve bir “EmguCV” deyişi vardı ki :), kış günleriydi nedense kış bana hep tatlı gelir. Durdum tamam, EmguCV ile şunu da bu satıra son olarak ekleyim, EmguCV seçeceğim büyük ihtimal; çünkü en pahalısı en kalitelisidir! Hahaha, benim bunu alacak param var mı,yok tabi ki. 🙁 🙁

Şunu deyim, merak etmeyin en son bir de OpenCV ile yaparız, o da cepte durur.

Oha adamın birisinin Github’ında hayvan gibi EmguCV projeleri varmış dedim, Github profili zaten EmguCV’nin imiş. 😀 😀 Ya ama bir dakika, aklımda iki şey var; ben bu yazıyı düzenlerken çok sıkıntı çekeceğim ve ikinci olarak şuan açım, ama beni de anlayın, biraz atıştırıp geliyorum.

Geldim, ve EmguCV tutorial’larına dalıyorum hadi ben kaçtım, alt satırda somut bir sonuç ile dönmüş olurum. İnşallah.

Kısaca aktarayım: emgucv’nin Github repo’su çok iyi, ilk olarak ondan yararlanacağım ama sanırım Fork etmem lazım sonra silerim çünkü indiremiyorum, ikinci olarak Try’dan indirdiğim şeyler var ama inşallah PCL X.F ile olur üçüncü olarak C# kullanmamız çok büyük avantaj, bütün metodları, sınıfları aynen mobilde de çalıştırırız ve C# ile istemediğiniz kadar çok örnek var. Aaa! noldu bilin bakalım; 3 yıl önceki adam tutorial videosunda karşıma çıktı, üstat be! 😀

Yaa, şimdi fork oldu da, ortalık dağıldı. Neyse (aradan biraz zaman geçti; üç nokta da onun için :D) Hadi bakalım!, bütün emgucv örneklerini indiriyorum.

Evet sayın seyirciler, hemen burada yaşananları anlatıyorum; ortalık karıştı, göz gözü görmüyor, iğne atsan yere düşmez, wrong mesajlarından vuran vurana!

(Daha fazlaydı, debug’sız hali, yoksa 60 civarı warnings görmüşlüğüm var.)

Yalnız var yaa şimdi Build’e başladım, birazdan ekrandan ekran görüntüsü sizlerle olacak!

Ya anlamıyorum, insan neden github’a çalışmayan proje örneği koyar ya, koskoca emgucv’sin sen!

Size bir satır geçti de benim için yarım saat, yoruldum! Github’da ki bozuk değilmiş, ben onu Xamarin’in sitesinden indirmiştim, warning verdi bu yüzden çalıştırmadı, error da değil ha. En son 3 yıl önce ortalık fena dağılmıştı, yani destkop’tan bahsediyorum; klasörler, dosyalar…

Bayağı bir ara verdim; 3-4 saatlik bir ara şuan saat akşam 9 ve tekrar oturdum. İki planım var, ilki başka bir yönden gitmek, ikincisi bir proje indirmiştim Github’da ki, o projede kütüphanelerin sınıfları hataları vermişti. VS’dan bir ayar vardı 3 sene önce yapıyordum oradan tecrübeliyim, işte birde onu deneyeceğim. Nuget’ten indirdiğim dosyada referanslara gerekli DLL’ler gelmiyor, yani eksik; büyük ihtimal mobil proje olmasındandır diye tahmin ediyorum… Hım tamam, şimdi dosyaları karıştırırken o dediğim VS’dan yapmamız gereken şeyi yapmamız gerekiyor, yani dosyalar tam… Son sıkıntı örnek projenin Shared Project olması.

Yaptığım şey yarısını çözdü problemlerin (kısacası Object Browser) ama Drawing sınıfını hala ekleyemedik. En son temiz bir projeyle tekrar döneceğim ona. Blog çok uzadı, birkaç resimde eklersem çok uzun olacak, en iyisi bir reklam arası vermek. 🙂

 

Previous
Xamarin.Forms E-Kitap Okuyucu – Bölüm 20
Next
Xamarin.Forms ile Görüntü İşleme – 2

Leave a comment

E-posta hesabınız yayımlanmayacak. Gerekli alanlar * ile işaretlenmişlerdir