Salı, Temmuz 24, 2012

OpenCv 2.x ' Giriş - Kurulum -

OpenCv  açık kaynak kodlu ticari kullanım içinde uygun bir lisansa ( BSD ) sahip bir Bilgisayarlı görü kütüphanesidir.
Daha Önce OpenCv ye giriş niteliğinde bir dizi yazı yazmıştık.  Yazdığımız yazılar kısmen güncelliğini yitirmiştir. Her ne kadar eskiye uyumluluk adına eski C API muhafaza edilsede, OpenCv 2. versiyonundan itibaren  C++ API sistemine geçilmiştir.
Bu durumda yazılarımızın da yeni C++ API larına göre yenilenmesi gerekmekteydi fakat fırsat bulupda yazmaya bir türlü başlayamamıştım. Bu gün kurulumundan başlayayım bakalım İnşallah fırsat bulup  seriyi tamamlayabilirim.

Cumartesi, Temmuz 21, 2012

Görüntü Birleştirme - Image Stitching


ImageStitching from bluekid on Vimeo.


OpenCv nin pek çok dökümante edilmemiş özelliğinden birini uygulayıp gösteriyoruz
Görüntü birleştirme işlemi için her görüntü üzerinde öznitelik çıkartılıp sonra diğer resimlerdeki ile olan eşleşmesi tespit ediliyor. Bu eşleşmeye göre transformasyon matrisleri hesaplanıp daha geniş bir resimde birleştiriliyor.

Yukardaki resimde Köyümde çektiğim 3 resmin birleştirilmiş halini görüyorsunuz. Videoda ise Programın çalışmasını.

Bu arada unutmadan burdan duyurmuş olayım OpenCv 2.4.2 versiyon güncellemesi yapıldı. Bende kurdum. OpenCv 2.0 dan sonra gelen C++ API' ları artık yaygın hale geldi. Geçmediyseniz bir an önce geçin ve yeni şekliyle kullanmayı öğrenin. Bende fırsat bulabilirsem bir şeyler hazırlıyacağım

Cumartesi, Temmuz 07, 2012

D ve C++11 Konferansı / Diller ve Programcılar

Geçen yazım da belirtimiş olduğum "D ve C++11 Konferansı" etkinliğine oldukça geç de olsa katılabildim. İhtiyarlık madalyası almam gerektiğinden okula gitmemiz gerekmişti....
Etkinliğin duyrusunda da katılabileceğimi ve amacımı

 D diliyle pek ilgilenmesemde C++11 hakkında bir şeyler dinlemek ve tanışmak isterim.
 şeklinde belirtmiştim. Tanıdıklarımla tekrar görüşmek tanımadıklarımla tanışmak güzeldi.
Emeği geçen herkese teşekkürler.
Özellikle Ali Beyle tanışmak büyük şans benim için. İyi bir programcıyla tanışmak her zaman olan bir şey değil. hem "biribirini bilmemek insaf değil"...

D Dili mevzusuna gelecek olursak.
  C / C++ için "garbage collector" diye yaptığım bir araştırmada önce "Hans Boehm garbage collector" a ordadanda bu GC yi kendi Derleyici paketine adapte eden Digital Mars şirketinin sayfasına ulaşmış ve ilk defa orda görmüştüm.

 İlk Etapta beni heyecanlandırmadı desem yalan olur. Malum C dilide B dilinden türetilmiş ve almış yürümüştü. Belkide D dilide böyle olurdu. O heyecanla biraz inceledim ve birazda araştırdım. Dilin özellikleri iyi idi fakat İşin açıkçası Üzerinde yoğun olarak çalışıp kararlı hale gelmesini ve arkasında durup popülerleşmesini sağlayacak bir Firma yada Topluluk yoktu. Bende onu hafızamın tozlu sayfalarında bıraktım gitti.

Nice sonra ; Ali Beyin  ilk olarak Ceviz forumda tanıtımlarıyla ve sonrasında DDili sitesini açmasıyla, Ülkemiz de bazı gayretler görmeye başladık. Benim şahsi fikrim Bu faliyetler Şahsi gayretler üzerinde yürüyor, sonuçda Bu dilin çok büyük bir yaygınlık kazanacağını düşünmüyorum...

 Diller Konusuna gelirsek;
Programlama dilleri arasında benim dilim senin dilini döver, Filanca Dilin şöyle mübarek ! imkanları var oysa falanca dil de yok demek bana çocukça ve saçma geliyor. Elbette programcı seçtiği dili sever ve diğer dillere göre tercih etme sebepleri de vardır. Ama asıl olan Programcıdır. Her dilde iyi yada kötü programlar yazılabilir. Bir yazarımızın iki romancımız için kullandığı şöyle bir tabir vardı
".... yazdıkları  kötü yazılmış iyi romanlardır .... nın yazdıklarıysa iyi yazılmış kötü romanlardır"
Aynı şekilde Bence Programlama bir sanattır.
İyi yazılmış; Dilin imkanlarını ustalıkla ve doğru şekilde kullanarak
ve İyi bir içerikle ; Çözmek için hedeflediği problemi güzel şekilde çözen
bir program sanat eseridir.

Ve Malesef bendeniz sanatkar olmadığımı biliyorum...

Son olarak : Okumanız gereken bir yazıdan bir alıntıyla  bitiriyorum 
 A single good programmer working on a single task has no coordination or communication overhead. Five programmers working on the same task must coordinate and communicate. That takes a lot of time. There are added benefits to using the smallest team possible; the man-month really is mythical.
...
The real trouble with using a lot of mediocre programmers instead of a couple of good ones is that no matter how long they work, they never produce something as good as what the great programmers can produce.
Five Antonio Salieris won't produce Mozart's Requiem. Ever. Not if they work for 100 years.
Not : Bir hafta kadar Rafet Resorta gitmek zorundayım. Ulaşamazsanız aklınızda olsun...