Sayfalar

Cuma, Mayıs 16, 2008

Yol ayrımında okuyucuyla hasbihal

Ne içindeyim zamanın,
Ne de büsbütün dışında;
Yekpâre, geniş bir ânın
Parçalanmaz akışında.


Bilenler bilir bilmiyenlerde şimdi öğrensin bendenizin işi bilgisayar yada programcılıkla ilgili değildir. Burada yazdığım yazıları ve projeleri akşamları hazırlıyorum.

Bugünlerde işlerimde epey bir yoğunluk olduğundan akşamları yorgun oluyorum. ve dolayısıyla pek bir şey yapamıyorum. Bir de bütün bunların üstüne ne yapacağıma karar verememiş olmam bezginliğimi artırıyor.

Peki sizce ne yapmam lazım buyrun yol ayrımından manzaralar.

FannTool
Epey bir zaman sonra FannTool'un yeni versiyonunu çıkarabildim. bu versiyonla artık FANN'nın en yeni versiyonundaki imkanlarada kavuşmuş olduk. FLTK 1.1.8 çıktıktan hemen sonra karşılaşılan birkaç problem yüzünden 1.1.9 versiyonu çıkarıldı. Bizde bu versiyonu kullandık. Şu an itibariyla 200'ün üzerinde download edilmiş durumda.

1) Eğitim sistemlerine Genetic eğitimi eklemek: bu aslında FANN kütüphanesi dahilinde yok ben FGA kullanarak böyle bir yenilik eklemek istiyorum.

2) Veri işleme kısmı : Gerçekten YSA larla uğraşmada en sıkıcı kısmı eğitim ve test verilerinin hazırlanmasıdır. Bir nebze olsun bu işleri kolaylaştıracak bir yapı tasarlıyorum.

3) geçen yılki GSoc da FANN ile ilgili yapılan yeniliklerin ana koda adeapte edilip FANN 3.0 çıkması bekleniyor o çıkınca yeni YSA çeşitleride FANN'a dahil olacak. O zaman yeni tür YSA lara göre FannTool da adapte edilmesi lazım.

4) FannTool'un kullanımını göstermek için bir tutorial tarzı bir uygulama yapmak lazım.

5) FANN kütüphanesine aşina olanlar için FannToolda kullanılabilecek ayarlar anlaşılır, Fakat sadece YSA tasarlamak için kullanmak isteyenler için zor olduğu aşikar. Bu yüzden basit bir help dosyası oluşturmak lazım.


Blueplayer :

Audiere kullanarak yazdığım basit bir ses çalma programıı. Arabirimini yine FLTK ile yazdım. ve benim ilk yayınladığım açık kaynak kodlu projem. yani ilk göz ağrım. elimde yayınlanmamış
0.7. versiyonu var, fırsat bulursam yayınlamayı düşünüyorum. ufak tefek düzenlemeler dışında AudioCD ses cd si çalma özelliğini eklemek lazım. Ama bu konuda pek de hevesli değilim epey bir süredir üzerinde çalışmıyorum. Talep olurda bu projeye devam etmek istiyen olursa buyursun gelsin memnun olur elimizden gelen yardımı esirgemeyiz.

Fl_OpenCV :
En son 0.8 versiyonunu Inpaint örneğiyle beraber yayınladım elimde 0.85 versiyonu var hatta bir de EigenFace ile yüz tanıma örneğide var. Ama ne zaman kısmet olurda yayınlayabiliriz bilemiyeceğim aslında Fl_OpenCV nin pek bir eksiği yok - en azından benim için - ama asıl olması gereken opencv nin Highgui'sinin içerisinden GTK lı kısımları kaldırıp Fl_OpenCv ile birleştirebilsem, highgui'ye alternatif olur.

Computer Vision veya OpenCV

İlk etapta OpenCv'nin görüntü işlemeyle ilgili kısımlarını daha sonra OpenCv'nin Machine Learning kütüphanesi için FannTool gibi bir GUI oluşturmak gibi fikirler var kafamda.

Yada işin kolayına kaçıp ufak tefek OpenCv'nin kullanımına dair programcıklar yazabilirim

Diğer Yapay Zeka konuları :
Fuzzy Logic SVM, HMM, OpenPNL , Soar ve benzeri diğer yapay zeka metodları üzerine uygumalar yazmak, pratik örnekler hazırlamak.


Sonuç olarak; fikirlerinizi, görüşlerinizi ve önerilerinizi bekliyorum. yoksa benim bu tembellikten kurtulacağım yok...

Perşembe, Mayıs 01, 2008

Linux altında OpenCv



Epeydir Linux'a OpenCv yi kurmaya çalışıyordum. Bir türlü ffmpeg'i aktifleştiremiyordum.
google ile aratınca bir kaç kaynak çıkıyordu 1 2 3 söylenenleri yaptığım halde olmuyordu.
Uğraşa uğraşa en sonunda kurabildim. meğerse OpenCv ffmpeg header dosyalarını bulamıyormuş. Kısaca anlatalım belki başka birisinin de işine yarar.

1) ffmpeg i indirin. ve açın
terminalde ffmpegi açtığınız dizine geçin
./configure --enable-shared
make
make install
2) super kullanıcı olarak bir filemaneger açıp
/usr/local/include/ffmpeg
dizinine gidin burada olması gereken header dosyaları ,
" /usr/local/include/ffmpeg /libavcodec"
ve benzeri alt dizinlerin içine konmuş alt dizinlerdeki bu header dosyalarını olması gereken yere yani
"/usr/local/include/ffmpeg "
dizinine kopyeleyin artık OpenCv yi gönül rahatlığıyla kurabilirsiniz.

3) opencv' i indirin. ve açın
terminalde opencv'yi açtığınız dizine geçin
./configure --with-ffmpeg --without-quicktime
deyin configure sonunda
Use ffmpeg: yes
sonucunu aldıysanız işlem tamamdır.
make
make install
deyip kurulumu tamamlayın

Not : artık OpenSuse 10.3 kullanıyorum

Çarşamba, Nisan 30, 2008

FannTool 0.93 Released

Hasretle ! beklenen FannTool'un yeni versiyonunu sunmaktan gurur duyarız.
Bu versiyonla birlikte, MSE değişimini grafik olarak görebileceksiniz. "Run with File" kısmıyla Test data dosyalarınızı gerçek ve hesaplanan değerlerini hemencecik alabileceksiniz. Gerek Normal gerekse Cascade eğitim için pek çok ince ayar yapma imkanına kavuşmuş olacaksınız.
Hem FLTK hem de FANN ın en yeni versiyonları kullanıldı, yani FannTool derlemek için artık FANN 2.1 ve FLTK 1.1.9 kullanmanız lazım.
Neyse efendim lafı fazla uzatmayalım indirmek için - Pek tabi ki kaynak kodu ve CodeBlocks proje dosyasıyla birlikte -
Download : FannTool 0.93 for Windows
FannTool 0.93 for Linux

Her türlü öneri istek ve hata bildirimlerinizi bekleriz

Pazartesi, Nisan 21, 2008

Bilişim teknolojilerinde gelecek

En son kısmetse "Bilişim teknolojilerinde gelecek" seminerine katılmaya niyetlendiğimi söyleyip, kısmet demiştim. Nasib oldu dün ODTÜ'ye seminere gittim

Anakarda yaşamama rağmen geçen seneki Özgür Yazılım Şenliğinden beri ODTÜ ye uğrayamamıştım. Her zaman güzel olan ODTÜ baharla daha bir güzel görünüyordu. Benim gibi Toz ve dumanlar içinde çalışan biri için cennet gibi bile denebilir.

saat 11 gibi ODTÜ'ye geldim. Biraz erken geldim ve gelmişken kütüphaneye uğrayıp kitap karıştırdım. ODTÜ nün kütüphanesi gibisi yoktur. İstediğiniz kitabı istediğiniz gibi kurcalarsınız. Okulda Laptop kullanımı epey bir artmış olmalı ki masalara fiş yeri konmuş. Bir kaç kişide de gördüm zaten Laptoplarını kitaplarını açmışlar uğraşıyorlardı. Hey gidi günler hey biz vakti zamanında Casio fx-3600 scientic ! hesap makinasını güç bela aldırdıydık.

Seminer duyrusunu ben Fazlamesai den duymuştum ilk seminer
Bilgisayar Dünyasında Akademik Açılımlar
o Prof. Dr. Volkan Atalay (Biyoinformatik)
o Prof. Dr. Fatoş Tünay Yalman-Vural (Görüntü İşleme)
o Yrd. Doç. Dr. Erol Şahin (Robotik)
o Dr. Atilla Özgit (İnternet Teknolojileri)

şeklinde geçiyordu. Bu seminerle birlikte hayal kırıklıklarımız başladı. İlk olarak Görüntü işleme hakkında konuşacak Fatoş Hanım başka bir program dolayısıyla katılamadı. İkinci olarak seminerin asıl konusu Biyoinformatik, Görüntü İşleme,Robotik, İnternet Teknolojileri den çok mezun adaylarının araştırmacı olmasını teşvik etemesi konusundaydı. Yinede böyle ileri teknoloji konularda yıllarını vermiş insanlardan çalıştıkları konularda bir iki kelime etmeleri de yeterdi ve yetti.

Sonraki iki konuşma benim ilgi alanıma zaten girmiyordu ben de o ara maddi ve manevi gıdalarımı aldım.

Son konuşma
Bilişim Sektöründe Girişimcilik
o Bora Güngören (Portakal Teknoloji)
o Eren Bali (Eofer)
o Gürkan Caner Birer (RotaSoft)
o Munir Ercan (RotaSoft)
idi. Bu 4 girişimci arkadaş bir salon dolusu girişimci adayıyla karşılaşınca sanırım biraz ürktüler!
"Biz şimdi bu girişimci adaylarını yüreklendirirsek yarın hepsi karşımıza rakip olarak çıkarlar, girişimcinin başını küçükken ezmek lazım" şeklinde düşünmüş olmalılarki hepsi birden verdiler veriştirdiler.
- Bulaşık yıkamayı , çöp toplamayı, bilmiyorsanız bu işlere girişmeyin gidin bir temizlik şirketinde staj yapın.
- şirket kurun 5 yıl boyunca batmazsanız, size ancak iş gelir.
- Kestiğiniz faturanın vergisini hemen ödersiniz, Parasını Allah bilir ne zaman alrısınız belki de alamazsınız.
- Küçük balık olmayı öğrenin ki büyük balıklar açlıktan ölmesin.

gibi iç ferahlatan ! ve yüreklendiren ! sözler sarfettiler. Şaka bir yana çok hoş bir sohbet oldu, sırf bu yüzden bile bu etkinliğe katılınırdı. Belkide pek çok kişinin ayaklarının yere basmasını sağlamışlardır.

Sonuç olarak şunu söylemek istiyorum. Çok güzel bir bahar gününde çok güzel bir etkinlik oldu. Emeği geçen herkese buradan teşekkür etmeyi borç bilir, tiz zaman da yeni seminerlerini bekleriz...


Sonuç olarak şunu söylemek istiyorum. Çok güzel bir bahar gününde çok güzel bir etkinlik oldu. Emeği geçen herkese buradan teşekkür etmeyi borç bilirim. Tiz zaman da yeni seminerlerini bekleriz...

Cuma, Nisan 18, 2008

Bir Adın Kalmalı

bir adın kalmalı geriye
bütün kırılmış şeylerin nihayetinde
aynaların ardında sır
yalnızlığın peşinde kuvvet
evet nihayet
bir adın kalmalı geriye
bir de o kahreden gurbet

sen say ki
ben hiç ağlamadım
hiç ateşe tutmadım yüreğimi
geceleri, koynuma almadım ihaneti
ve say ki
bütün şiirler gözlerini
bütün şarkılar saçlarını söylemedi
hele nihavent
hele buselik hiç geçmedi fikrimden
ve hiç gitmedi
bir topak kan gibi adın
içimin nehirlerinden
evet yangın
evet salaş yalvarmanın korkusunda talan
evet kaybetmenin o zehirli buğusu
evet nisyan
evet kahrolmuş sayfaların arasında adın
sokaklar dolusu bir adamın yalnızlığı
bu sevda biraz nadan
biraz da hıçkırık tadı
pencere önü menekşelerinde her akşam

dağlar sonra oynadı yerinden
ve hallaçlar attı pamuğu fütursuzca
sen say ki
yerin dibine geçti
geçmeyesi sevdam
ve ben seni sevdiğim zaman
bu şehre yağmurlar yağdı
yani ben seni sevdiğim zaman
ayrılık kurşun kadar ağır
gülüşün kadar felaketiydi yaşamanın
yine de bir adın kalmalı geriye
bütün kırılmış şeylerin nihayetinde
aynaların ardında sır
yalnızlığın peşinde kuvvet
evet nihayet
bir adın kalmalı geriye
bir de o kahreden gurbet
beni affet
Kaybetmek için erken, sevmek için çok geç

İhtiyarlıyormuyum ne ? aynen şiirdeki gibi kaybetmek için çok erken ama bir şeyler yapabilmek için de çoook geç olduğunu düşünüyor bir miskinliğe bir tembelliğe düşüyorum.
Buradaki çok geç aynen
Dönülmez akşamın ufkundayız vakit çok geç
deki gibi olduğunu hatırlatırım.

Bu adam nereler de kaldı 15 -20 gündür sesi soluğu çıkmıyor diyenler için deep not
Yoğun! istek alan FannTool'un 0.85 versiyonunu yayınlayacaktım vazgeçtim 0.9 versiyonunu hazırlıyorum, sabredin biraz.
Jardel Mustafa yaptığım ortayı aut'a attı, kısmet artık bu sayede size bir süriz çıkabilir
Özğür yazılım şenliği duyrusu beklerken "Bilişim Teknolojilerinde Gelecek" adlı bir etkinliğini duydum kısmetse Bu pazar oradayım.






Pazartesi, Mart 31, 2008

Yüz Tanıma

Küçücük bir bebek sizin yabancı olduğunuzu bilip, ağlamaya başlıyor. Tanıdık bir yüz görünce yüzünde gülücükler açıyor. İnsan olarak yüz tanımak bize çok kolay geliyor. Yalnız neye istinaden tanıdığımızı açıklamaya kalkınca iş, içinden çıkılmaz hale geliyor. Yani
Fesübhanallah! Yüzün o küçük sayfasında nasıl gayr-ı mütenahi nişanlar derc edilmiştir ki, gözle okunur da nazarla, yani akılla görünmez.
diye boşuna denmemiş...

Daha yürümesini, konuşmasını bile bilmeyen bir bebeğin yapabildiğini, bilgisayarda yaptırtabilmek için neler yapılımış neler. Nice algorithmlar geliştirilmiş, nice programlar yazılmış, nice tezler hazırlanmış, ve niceleri de yapılmaya devam ediyor. Çünkü hala dört dörtlük bir metod bulunmuş değil.

Vakiti zamanında SERVO magazinde Seeing with OpenCv diye 5 bölümden oluşan bir makale yayınlandı. Bu makalede OpenCv'ye hızlı bir giriş ve yüz tespiti, takibi ve tanıma konuları işlendi. Tanıma işi için EigenFace metodu kullanıldı. EigenFace metodu yüz tanıma metodlarının başlıcalarından ve en eskilerinden birdir. Internette zahmet edipte aramayın. DerinDeliMavi'nin büyüük hizmeti Buyrun indirin

Cuma, Mart 28, 2008

FLTK 1.1.8 çıktı


Evet epeydir beklediğimiz FLTK'nın son versiyonu çıktı.
FLTK 1.1.8 in 1.1.7 den farkları için buraya , indirmek için şuraya bakın
Bu versiyonla 1.1.x serisi bitti artık UTF-8 eklenmiş haliyle FLTK 1.3 versiyonu geliştirilmeye başlanıyor. Üstteki resim FLTK 1.1.8 ile gelen demolardan biri olan Block Attacks oyunundan alınmıştır.

Pazartesi, Mart 24, 2008

Bu aralar neler yapıyoruz ?

Bu aralar abuk subuk yazılar yazmanın dışunda neler yaptığımızı merak edenler olabilir ?
Merak etmesenizde bir şey değişmeyecek ben yine de anlatacağım
  • Jardel Mustafa'ya beklediği ortayı yaptım. Pek matah birşey olmasada top artık onda
  • Daha önceden duyurduğumuz CodeBlocks'un kararlı sürümünü Hem windows hem de Linux altında kurdum
  • FannTool'un yeni versiyonu üzerinde çalışıyorum. Bir kaç kişiye yeni halini gönderdim. Eğer zahmet edipte fikirlerini beyan ederlerse bir kaç düzenleme daha yapıp yayınlayacağım. FANN'ın yeni versiyonundan bir haber yok. Ben de bu sefer 2.1 versiyonunu kullandım.
  • FLTK 1.1.8 rc3 yayınlandı kurup denedim gayet güzel, FLTK 1.1.8'in eli kulağında bekliyoruz.
  • OpenCv'yi linux'a kurmayı tekrar denemem lazım beceremedim bir türlü :(
  • Volkan ile yaptığımız projeyle ilgili bir çalışma var, Problem zihnimde tamamlandı kod yazmam lazım.
  • e-mail ile gelen sorularınızı bildiğimiz kadarıyla cevaplamaya çalışyoruz. Bu soru cevapları toparlayıp bir yazı haline getirmek lazım...

Cumartesi, Mart 22, 2008

Beni kör kuyularda hamaksız bıraktın !


Kim ne tarafa çektirse o tarafa yöneliyorum. İşte ayrı, Internette ayrı, Ev de ayrı, Derslerde ayrı bir insan oluyorum. Bir bölünüş bir parçalanış bu ...
Bilsem şimdi nerdeyim
Bir uzun seferdeyim
gücüm - ömrüm - yetene kadar
Nazarımda kıymetli olana insanlar değer vermiyor. Zannımca pek de önemli olmayan, ben olmasamda pek ala - hatta daha ala - olacak işlere, başkaları kıymet ve değer veriyorlar. Nazarımın ve zannımın peşinden gidemiyorum çünkü Rızkı kazanmak başkalarının verdiği değerden geçiyor. ve ilk parçalanış...

Ev başka bir alem. Hayatı hayatımla kesişmiş insanlar. Bir taraftan herkesin ayrı dünyaları var. Diğer taraftan Kesişmiş hayat çizgilerimizden gelen hayatımda istekleri ve dahi hakları var. ve bir parça daha...
Derin kederlere sal beni
Canın sağ olsunda kır beni
Hep sinin üstüne, hep benim üstüme. Bir nasihat, bir musibet, bir hastalık bir ölümle gelen idrak.
"Madem dünya fanidir demiyor alakayı kalbe"
biliyorum ama kalbimin alakasını kese biliyormuyum ? Tonla kitap okumuş, okuyor ve dahi okuyacak olmak ve bilmek kurtarıyor mu insanı ?
kahretsin bilmek böyle bir şey işte ; Bilmenin insanı kurtarmaya yetmediğini de biliyor insan

sözlerimin anlamı beni ürkütüyor
böylesine hazırlıklı değilim daha
bilmek buda ürkütüyor
gene de biliyorum
Kapanmazmış günahların açtığı yaralar insanda.

Saffeti kalbi, itminanı kalbi nerden, nasıl bulacağız ?

Günümüzde bütün bunlara ilaç olarak hamakta sallanmayı tavsiye ediyorlar.
Kör kuyularda hamağı nerden bulupta nasıl sallanacağız.
Hadi yaptık diyelim, kör kuyuda olduğumuz gerçeğini değiştiyor mu hamakta sallanmak.
Olsa olsa unutturuyor o da muvakkaten.
Yüreğimizdeki yaralar yüzümüzü karartmış , Yusuf yüzlüler dururken kim bize merdiven salar
...
Haber aldım ki, yarın yâd olacakmış bize yar
Ne büyük yâre ki kimler buna derman olacak
Bu büyük derd ü elemden kime şekva edeyim?
İşiten nâlemi, hep ben gibi nâlân olacak.

O şifa bahş olan envarını sen çeksen eğer
Bana kim nur verecek, kim bana Lokman olacak!
O temiz pâk nefesin, âb-ı hayatı bu çölün
Onu dûr etme ki her fert ona reyyan olacak
... *
Ve yine
ve yine
yine de biliyorum umutsuzluk yakışmaz bize...

ve kör kuyulardan sesleniyoruz

"Ey bu yerlerin hâkimi! Senin bahtına düştüm. Sana dehalet ediyorum ve sana hizmetkârım ve senin rızanı istiyorum ve seni arıyorum."

Senin kapından başka hangi kapıya gideyim?
Hangi kapı var?
Senden başka Rab yok ki dergâhına gidilsin.
Senden başka hak mâbud yoktur ki ona iltica edilsin."

Çarşamba, Mart 19, 2008

Tazarru ve Niyaz

...Biliniz ki, ben hilâf-ı âdet olarak, gizlemesi lâzım gelen, Rabbime karşı kalbimin tazarru ve niyaz ve münâcâtını bazan yazdığımın sebebi; ölüm, dilimi susturduğu zamanlarda, dilime bedel kitabımın söylemesinin kabulünü rahmet-i İlâhiyeden rica etmektir. Evet, kısa bir ömürde, hadsiz günahlarıma kefaret olacak, muvakkat lisanımın tevbe ve nedametleri kâfi gelmiyor. Sabit ve bir derece daim olan kitabın lisanı daha ziyade o işe yarar...

Ey Rabb-i Rahîmim ve ey Hâlık-ı Kerîmim! Benim sû-i ihtiyarımla ömrüm ve gençliğim zayi olup gitti. Ve o ömür ve gençliğin meyvelerinden elimde kalan, elem verici günahlar, zillet verici elemler, dalâlet verici vesveseler kalmıştır. Ve bu ağır yük ve hastalıklı kalb ve hacâletli yüzümle kabre yakınlaşıyorum. Bilmüşahede, göre göre, gayet sür'atle, sağa ve sola inhiraf etmeyerek, ihtiyarsız bir tarzda, vefat eden ahbap ve akran ve akaribim gibi, kabir kapısına yanaşıyorum.

O kabir, bu dâr-i fâniden firâk-ı ebedî ile ebedü'l-âbâd yolunda kurulmuş, açılmış evvelki menzil ve birinci kapıdır. Ve bu bağlandığım ve meftun olduğum şu dâr-ı dünya da, kat'î bir yakîn ile anladım ki, hâliktir gider ve fânidir ölür. Ve bilmüşahede, içindeki mevcudat dahi, birbiri arkasından kafile kafile göçüp gider, kaybolur. Hususan benim gibi nefs-i emmâreyi taşıyanlara şu dünya çok gaddardır, mekkârdır. Bir lezzet verse, bin elem takar, çektirir. Bir üzüm yedirse, yüz tokat vurur.

...

"El-aman, el-aman! Ya Rahmân! Yâ Hannân! Yâ Mennân! Yâ Deyyân! Beni çirkin günahlarımın arkadaşlıklarından kurtar! Yerimi genişlettir! İlâhî, Senin rahmetin melceimdir ve Rahmeten li'l-Âlemîn olan Habibin, Senin rahmetine yetişmek için vesilemdir. Senden şekvâ değil, belki nefsimi ve halimi Sana şekvâ ediyorum.

"Ey Hâlık-ı Kerîmim ve ey Rabb-i Rahîmim! Senin B... K... ismindeki mahlûkun ve masnuun ve abdin, hem âsi, hem âciz, hem gafil, hem cahil, hem alîl, hem zelîl, hem müsi', hem müsin, hem şakî, hem seyyidinden kaçmış bir köle olduğu halde, ... sene sonra nedamet edip Senin dergâhına avdet etmek istiyor. Senin rahmetine iltica ediyor. Hadsiz günah ve hatîatlarını itiraf ediyor. Evham ve türlü türlü illetlerle müptelâ olmuş.

Sana tazarru ve niyaz eder. Eğer kemâl-i rahmetinle onu kabul etsen, mağfiret edip rahmet etsen, zaten o Senin şânındır. Çünkü Erhamürrâhimînsin. Eğer kabul etmezsen,

Senin kapından başka hangi kapıya gideyim?
Hangi kapı var?
Senden başka Rab yok ki dergâhına gidilsin.
Senden başka hak mâbud yoktur ki ona iltica edilsin."

17. Lema 12. Nota'dan

Çarşamba, Mart 05, 2008

Code::Blocks 8.02 has been released

Fazla söze gerek yok Sonunda Nightly Builds den kurtuluyoruz. CodeBlocks IDE yeni kararlı sürümünü çıkardı.
Özellikleri için : Features
İndirmek için : Downloads
Linkte de görebileceğiniz gibi windows, Mac OS X, ve bilimum Linux sürümleri ( Ubuntu, Debian, Fedora ve OpenSuse üstelik 64 bit versiyonlarıda var.* ) için paketleri hazır kullanabilirsiniz.
Programcılık camiasına hayırlı olsun.

* Birileri de Pardus versiyonunu çıkarsada biz de Fedoraymış yok Suseymiş Yok Ubuntuymuş gezeleyip durmasak :)

Cumartesi, Mart 01, 2008

Yapay Zeka Tıbbın Hizmetinde 2

İlk yazımızdaki programı indirip inceleyen - şu an itibarıyla 4 kişi - ÇOK! sayıda insandan biriyseniz Programın YSA yı uygulayan kısımının Heasapla fonksiyonun içinde olduğu ve Normalizasyon kısımlarını saymaksak üç beş satırdan oluştuğunu görmüşsünüzdür. Peki bu işler bu kadar kolaymı ?
cevap veriyorum Hayır. İsterseniz o üç beş satırı yazabilmek için neler yapmamız gerektiğine bir bakalım.

YSA ya bir şeyler öğretebilmek için eğitim gerekli, Eğitim içinse veri.
Sınıflandırma yapmamız için etkili olan faktörler tespit edilir - Giriş değişkenleri - Sonuçta bu faktörlere göre bir sınıflara ulaşırız -Çıkış değerleri - İşte Bu giriş ve çıkış değerleri YSA nın giriş ve çıkış değerleri oluyor.
Peki YSA verileri doğrudan verebilirmiyiz ?
Malesef veremeyiz. YSA da katmanlar arasında veri iletişimi bir çeşit aktivasyon fonksiyonundan geçerek sağlanır. Bu fonksiyonlarda tipine göre (0 - 1 ) yada (-1 1) aralığında sonuçlar verir. Bu durumda bizim verilerinizi bu aralıklara çekmemiz lazım. Peki Bu normalizasyon işlemini nasıl yapacağız. Değişkenin en küçük (min) ve en büyük (max) değerleri tespit edilir ve bir aralık hesaplanır
range = max-min
Biz bu uygulamamızda ( 0 - 1) aralığını kullandığımızdan normalizasyon formülümüz şöyle oluyor.
Norm(x)= (x-min)/range
ufak bir tavsiyede bulanayım değişkenin veri kümesinden tespit ettiğimiz min max değerlerini aralığı hafifçe açacak şekilde genişletirseniz daha iyi olur. bu arada sizede ufak bir ev ödev i! (-1 - 1) aralığında normalizasyon için gereken formülüde siz bulun.

Giriş değişkeni eğer mantıksal bir değişkense, (doğru-yanlış) gibi sadece iki değeri içeriyorsa normalizasyonu gayet kolay değerin biri 0 diğeri 1 olarak YSA ya bildirilir.

Peki değişken eğer sayısal değilse ne yapacağız mesela bizim örneğimizde "chest pain type"
göğüs ağrısı tipi diye bir değişken var ve bu değişken {angina, abnang, notang, asympt} gibi 4
değişik tipten oluşuyor. Bu durumda yapacağımız şey bu tip değişkenleri mantıksal değişkenlere
bölmek yani chest pain type değişkenini 4 adet mantıksal alana yayıyoruz eğer ağrı tipi
angina ise 1 0 0 0 yok notang ise 0 0 1 0 gibi.
Şimdi gelelim verilerimize verilerin aslı aşağıdaki gibi bir matriste tutuluyor

60, male, asympt, 140, 293, fal, hyp, 170, fal, 1.2, flat, 2, rev, sick.
37, male, notang, 130, 250, fal, norm, 187, fal, 3.5, down, 0, norm, buff.
64, male, angina, 110, 211, fal, hyp, 144, true, 1.8, flat, 0, norm, buff.

bu matriste 14 sütün var ilk 13 ü giriş değişkenleri son sütün çıkış değişkeni. fakat biz bu
değişkenleri YSA ya aktarabilmek için normalize ederken sütün sayımız 25 e çıkıyor nasıl mı oluyor bakınız


ANN Dizaynı

| Inputs
| ------------------------
| -- 1. age : 1 sütun
| -- 2. sex : 1 sütun
| -- 3. chest pain type (4 values) : 4 sütun
| -- 4. resting blood pressure : 1 sütun
| -- 5. serum cholestoral in mg/dl : 1 sütun
| -- 6. fasting blood sugar > 120 mg/dl : 1 sütun
| -- 7. resting electrocardiographic results (values 0,1,2) : 3 sütun
| -- 8. maximum heart rate achieved : 1 sütun
| -- 9. exercise induced angina : 1 sütun
| -- 10. oldpeak = ST depression induced by exercise relative to rest : 1 sütun
| -- 11. the slope of the peak exercise ST segment : 3 sütun
| -- 12. number of major vessels (0-3) colored by flourosopy : 4 sütun
| -- 13. thal: ( normal, fixed defect,reversable defect) : 3 sütun
25 giriş

| Outputs
| ------------------------
| Absence (1) or presence (2) of heart disease 1 sütun

1 Çıkış

evet Elimizdeki 180 adet veriyi bin bir meşakkatle normalize ettiktten sonra ikiye ayırıyoruz.
155 adedi eğitim için 25 adedi test için. ve verileri FANN kütüphanesinin standartına uygun olarak kaydediyoruz. - FANN kullanımı yazılarım -

Bundan sonrasını FannTool'u kullanarak yapacağız. FannTool'u çalıştırın ve Eğitim için Training
Data File olaraka "heart_train_data.dat" yükleyin Artık Keyfinize ve tecrübelerinize göre eğitim denemelerinini yapabilrsiniz.
ilk etapta saklı katman sayısı (# of Layer) ve bu katmanlardaki hücre sayılarını (Hid Layer 1 ...) ayarlaya bilirsiniz.
İsterseniz Eğitim metodunu (Detect Optimum Training Algorithm) ve Aktivasyon foksiyonlarını
(Detect Optimum Activation Functions ) sizin için seçmesini istiyebilirsiniz.

Artık Train -> Normal diyerek YSA eğitimini başlata bilirsiniz. Eğer Belirlediğiniz hata değerine yada altına ulaşıldığında Eğitilmiş YSA yı kaydetmek için sizden bir dosya ismi istenir. Bir isim verip kaydedin .net uzantılı olarak kaydetmeniniz iyi olur.

İşimiz bittmi ? ellbette hayır. Biz boşunamı test datası oluşturduk. Testing Data File olarak test dosyamızı yüklüyoruz. Test ANN düğmesine basıyoruz. Bizeden eğitilmiş YSA dosyası isteniyor kaydettiğimiz .net dosyasını seçiyoruz. Sonuçta bize test verileriyle ulaşılan bir MSE (ortalama hata ) değeri hesaplanır.
Bu değer eğer çok yüksekse. Bizim YSA eğitimi iyi olmamış demektir. Tabiri caiz ise YSA mız Eğitim verilerini ezberlemiştir. Muhtemel sebeplerine gelirsek Düşük veri sayısı veya yüksek hücre sayısı veya istenen hata değerinin çok düşüklüğü....
Ama istenen ezberleme değil genellemedir. Böyle durumlarda eğitimi değişik kombinasyonları deyerek tekrarlamak gerekir.
Eğitimin bir diğer metoduda Train->Cascade dir bu metodda YSA nın Saklı katmanlarını kendisi dinamik olarak belirler. Siz sadece kullanabileceği maksimum hücre sayısını belirtebilirsiniz. Bu değeri de FannTool Saklı katmanlardaki hücre sayılarını giriş ve çıkış hücre sayılarına ekleyerek hesaplar.

Bütün bunlardan sonra Eğitimizi tamamlayıp testimizi yapıp sonucunda tatminkar hata değerine ulaştıktan sonra yapılacak şey basit bir arabirim yazmaktırki onuda ilk yazımızda verdik.

Sizinde gördüğünüğüz gibi üç beş satırın arkasında epey bir emek var. İnşallah FannTool 'un ilerki versiyonlarında Veri işlemeyi nispeten kolaylaştıran bir kısımı da eklemeyi planlıyorum.
Artık nasip...

Salı, Şubat 26, 2008

Aney

Aney
Bu akşam aklıma yine sen geldin
Dersi bıraktım çalışamadım.
Saat 1'e geliyordu Aney, yatamadım
Uyku gözüme girmedi
Sen bu saatlerde benim beşiğimi sallardın
Uykunu harab ederdin benim için
Ağladığım zaman, sancılandığım zaman
Kalkardın, süt verirdin, nane kaynatırdın
Aney, canım aney, kurban aney
Hayalin önümde şimdi anıt gibi durur
Sen şimdi leğenin başına oturmuş, hamur yoğuruyorsun
Yarın ekmek yapacaksın, akşama kadar
Gözlerin tezek dumanından yaşaracak
Alnında ter bulgur bulgur kabaracak
Sıcak bazlamalar yapacaksın.
Ben orda yokum ağlayacaksın
Ağlama Aney ağlama, gündür bu, nasıl olsa geçer
İnsan insana tez kavuşur.
Ben sizi hiç unutmadım, hiç unutmayacağım
Ben okuyorum Aney okuyorum mühendis olacağım
...
Ah Aney daha neler var neler sana yazamadığım
Mektubumu burada bitirirken,
Beni büyüten ellerinden, binlerce kere öperim
Canım Aney, Kurban Aney, Can Aney.......


Mehmet Atilla Maraş

Yapay Zeka Tıbbın Hizmetinde 1

İsmine bakıpta büyük beklentileriniz olmasın. Yapılan iş basit! bir sınıflandırma işi. Daha önceki tecrübe verilerini kullanarak kişilerin kalp hastası yada sağıklı olduğuna karar veriliyor.
Öncelikle veriler bulunuyor. YSA ile kullanmak için normalize ediliyor. FannTool ile değişik metodlarla deneye yanıla uygun bir YSA ya ulaştıktan sonrası kolay. Yazıyoruz basit bir kullanıcı arabirimi işte karşınızda Heart.zip
Eğer isteyen olursa yada vakit bulabilirsem Linux versiyonunuda yayınlarım. Zaten FLTK ve FANN kullanıldığında kod taşınabilir, siz de derleyebilirsiniz. Giriş verilerinin isimlerini çevirmedim çünkü ne manaya geldiğini bilmediğim tıbbi terimler de var. Yarı ingilzce yarı türkçe olmasındansa bu şekli daha doğru buldum.
Son bir not : Türkiyede niye böyle uygulamalar için hazırlanmış veri tabanları yok ? Eğer varsa neden duyrusu iyi bir şekilde yapılmıyor ? Eğer böyle veritabanları hazırlanırsa tutupta "Cleveland Clinic Foundation" yerine kendi veritabanlarımız kullanabilirdik. Güzide üniversitelerimizdeki güzide hocalarımızdan ısrarla istiyoruz.

Cumartesi, Şubat 16, 2008

birbirini bilmemek insaf değil

Efendim bendeniz sahaflada gezinmekten çok hoşlanırım. Lüzumlu lüzumsuz pek çok kitap almışlığım da vardır sahaflardan. Geçenlerde yine sahaflarda geziniyordum. Fakat bu sefer Cogito nun yapay Zeka sayısını arıyordum.

Aslında Cogitonun Yapay Zeka sayısını defalarca kitapçılarda elime alıp alsammı diye düşünmüşlüğüm vardı ama çok teorik diye vazgeçmiştim. Son okuduğum kitaptaki ant-i ütopya yazıları fikrimi değiştirmeme sebep oldu -Matrix / Kırmızı Hapı Yutmak- Felsefi ve etik yönünden de bilgi sahibi olmak lazım yoksa "ehramlara taş taşıyan birer köle"* den ne farkımız kalır dedim.

Neyse Konuyu dağıttım yine... Sahafların birine girdim ve Cogitonun Yapay Zeka saysısını sordum. Adama gülümsiyerek bulsam ben alacağım dedi. Meğer o da Yapay Zekayla ilgilenen bir müşteriymiş. Ayak üstü bir kaç kelam ettik, Makina tasrımında Yapay Zekayla ilgileniyormuş. Bu kısa karşılaşma bile bana tuhaf bir mutluluk verdi. Öyle ya aynı ilgi alanlarına sahip insanların tanışması konuşması insanı mutlu ediyor.

Düşünüyorumda belki yüzyüze tanışmak çok zor ama Internette niye yapamıyoruz ki bunu ? Yaptığınız çalışmaları duyuracağınız, Başkalarının çalışmalarını görebileceğimiz yerler var. www.yapay-zeka.org Türkiye'nin Yapay Zeka Portalı. Bence büyük bir eksikliği var, - Eskiden vardı - şu an forum'u yok. E-mail gurupları aynı işi görmüyor. Bu eksikliğide gidermek için size tavsiyem ceturk forumunda Yapay zekaya ayrılan kısımı kullanmanızdır. Bahsettiğim mekanların sahibi değilim fakat yine de sizleri davet ediyorum. Gelin Bu konuyla ilgilenen insanlar tanışalım, tartışalım, sorular sorup, cevaplar verelim, çalışmlarımızı anlatıp, çalışmalara katkılarda bulunalım. İnsafsızlık ! etmeyelim Ne demiş Nefi
ehl-i dil birbirini bilmemek insaf değil

* "mefhumların kah gülünç, kah korkuç maskelerle raksa çıktığı bir karnaval balosu, fikir hayatımız. tanımıyoruz onları, nereden geliyorlar bilen yok. fir'avunlara benziyorlar, kalabalığa çehrelerini göstermeyen fir'avunlara. ve aydınlarımız, o meçhul heyulalar için ehramlara taş taşıyan birer köle."
Cemil Meriç

Salı, Şubat 05, 2008

Nayır Nolamaz yine mi nETA ?

- yada Yazılım sektörümüzün hali pür melali Bölüm I -

Olayımız bir Muhasebe bürosunda geçiyor. tuzu kuru yazılım firmalarımızdan nETA'nın muhasebe paketini kullanan binlerce muhasebeciden biri.

İhtiyar Muhasebeci -İM - , kendi kendine
- Nihayet nETA muhasebe paketinin güncellemesi geldi
zarfı açıp kağıdı okur.
- Hey gidi hey adamlar yapyor ya. AGİ değişikliğinide içeren yeni sürümü eskisinin üzerine otamatik yüklüyormuş. Yinede benim için karışık ben en iyisi yine çaycının çırağını çağrayım.
Zile basıp 1 çay 1 gazoz söyler. Çok geçmeden Çaycı Çocuk - ÇÇ - çıkar gelir, çayı adamın önüne koyup gazoz kimin diye soran gözlerle muhasebeciye bakar. muhasebeci muzip şekilde gülümsiyerek.
İM - Gazoz senin için otur bakalım bilgisayarın başına bi-zahmet! şunu yükleyeceksin.
Çaycı Çocuk suratını ekşiterek
ÇÇ - Nayır Nolamaz yine mi nETA ?... Bilgisayarınızı yenileyince XP altında çalıştırabilmek için neler çektiğimzi hatırlamıyormusun?
İM - Alışmışız işte, sen bırak mızmızlanmayı da işine bak hem bu sefer tam otomatik yapmışlar
ÇÇ - Hadi canım
İM - Kağıtlarına bak
Çaycı çocuk kağıtlara göz atar.
ÇÇ - Hımm hakkaten ya bir programla işlem tamam oluyormuş.
ÇÇ - Tamam CD'ye bakalım eee bahsi geçen program yok !
İM - iyi bak oralardadır.
ÇÇ - Evet buldum fakat bu kurulacak programların içinde demek ki önce yeni versiyonu kurup öyle yapacağız.
... yaklaşık 10 dakika sonra
ÇÇ - Abi olmuyor bu program ... hatası veriyor yükseltmiyor.
İM- Bir işi beceremedin dur ben destek hattını arayayımda oradakiyle konuş
- meşgul
- meşguuuul
- meşguuuuuuul
İM - ya bu hat niye bu kadar meşgul ki
Çaycı Çocuk sırıtarak
ÇÇ - Tam-otamatik versiyon artırıcı yüzünden olmasın :)
İM - hah düştü Alo şimdi bizim bir problemimiz vardı da.
Sekreter - Tam otamatik versiyon yükselticiyle ilgili değilmi ? bekleyin birazdan İlgili Arkadaşa -İA - aktaracağım
İM - peki bekliyoruz...
İM - al birazdan bağlaycaklar sen görüş.
ÇÇ - hıh bağlandı
İA - Problemi biliyorum şimdi CD yi takın ve falanca yerdeki dosyaları filanca yere kopyalayın
ÇÇ - tamam
İA - şimdi filanca yerdeki dosyaları falanca yere kopyalayın
ÇÇ - tamam
İA - şimdi Tam-Otomatik ! versiyon güncelleme programını çalıştırın
ÇÇ - tamam
İA - sorduğu dizinleri yazın
ÇÇ - ben bunu yaptım olmadı ve yine olmuyor
İA - dizinleri yanış yazıyorsunuzdur
ÇÇ - yo doğru yazıyorum zaten configurasyoın dosyasını bulamıyorum demiyorki ... hatası diyor.
İA - anladım siz motoru boğdurmuşsunuz.
ÇÇ - nasıl ? ne motoru
İA - Daha önce uğraşarak bilgisayarı kastırmışsınız motoru boğdırmuşsunuz o yüzden çalışmıyor
ÇÇ - öyle olsun peki ne yapmamız lazım ?
İA - Kafdağını bilirsiniz oaranın ardında ki Zümrüd-ü Anka kuşunun kuyruğundan bir tüy alıp bilgisayarı gıdıklayacaksınız. Bilgisayarınız gevşeyecek.
ÇÇ - Ya İlgili Arkadaşım şimdi kışta kıyamette kaf dağına gitmesi zor. yok mu bunun başka bir hal çaresi ?
İA - olmamı Merkezi arayıp install alacaksınız.
ÇÇ - Yani bütün bu olan biten şeylerin sebebi İnstall almamak için miydi ?
İA - Evet
ÇÇ - Hay ben sizin Tam-otomatik versiyon yükselticinizi Zümrüt-ü Anka kuşunun kuyruk tüyüyle gıdıklayım
İA - Bizde öyle diyoruz zaten
....
Merkez aranır program için install alınır. Program çalışmaya başlar. İhtiyar Muhasebeci Bilgisayarın başına oturur ve kontrol etmeye başlar.
ÇÇ - Abi müsade edecektin ben Bu programı Turbo-Debugger ile bir gıdıklayacaktım bak daha kolay ve daha kısa sürede çalıştıracaktık.
İM - TurboDebugger de ne ola ?
ÇÇ - Anka Kuşunun ecnebi versiyonu !
İM - Eeee AGİ bilgilerini girebiliyorum ama listede göremiyorum ?
ÇÇ - Onu da bir dahaki güncellemde kaktırırlar pardon verirler
İhtiytar Muhasebeci somurtur...
ÇÇ - Abi bırak bu nETA yı META yıda Tekir ile uğraşmaya başlasana
İhtiytar Muhasebecinin iyice canı sıkılır
İM - ooo bakıyorumda iyice laubali olmaya başladın, "Bırak bu işleride kedi köpekle uğraş" diyorsun ha
ÇÇ - Ama abi yanlış anladın
İM - Birde anlayışı kıt diyorsun ha beni daha fazla kızdırmadan boşlarını alda çık
Çaycı çocuk söylene söylene çıkar...
İhtiyar Muhasebeci bir ya Sabır çekip işine döner, bir taraftanda radyoda çalan türküye o bet sesiyle eşlik etmeye başlar
Kendim ettim kendim buldum kendim ettim kendim buldum
Gül gibi sarardım soldum eyvah eyvah eyvah ey

ve perde kapanır...

Deep Not : Bütün olanlar bir hayal ürünüdür gerçek kişi ve kuruluşlarla olan benzerlik tamamen tesadüftür ;)

Pazartesi, Şubat 04, 2008

Beni sigaya çeken bir molla chelebi


Yukarda sıfatını görmekle müşerref olduğunuz zat Molla Chelebi. O zat-ı mübarekle tanışık olmam benim gibi pür-kusur bir amatör için bir övünç vesilesidir. İyide bu Molla Chelebi de kim mi diyorsunuz ? sakın ha tövbe deyin.
Bu zat Evliya Çelebiden Gezginliği Mola Kasımdan da Mollalığı almış çağımızın en müstesna Coderlarından MBA ve epey bir kilo sahabısı. VAIO dan aşağısı kesmeyen Bir Proffessional Coderdır O. Über programcı yanında acemi kalır. O kadar prof dur ki artıkın program yazmasına müsade edilmiyor. Haksız rekabeti önleme kurulu rica etmiş "Zatınız program yazarsa diğer programcılar ne yapar ne eder, açlıktan telef olurlar." Tabii bu mübarek zatta büyüklüğünü gösterip bu işlerden elini eteğini çekmiş. Geçenlerde sitemizi de şereflendirmiş ve kulağımızı çekmiştir. Bizde biçare yunus gibi deriz...
amatör bluekid bu sözü eğri büğrü söyleme
seni sigaya çeker bir molla chelebi gelir

Pazartesi, Ocak 28, 2008

BushSweeper 1.0 çıktı



Söz verdiğimiz gibi yarım kalan projelerimizden olan BushSweeper'ı bitirdik ve yayınlıyoruz. Darısı BluePlayer'ın başına... Pek tabiiki hem Linux hemde Windows versiyonu ile birlikte yalnız bu sefer Linux versiyonunu KDevelop projesi olarak yayınlıyoruz, çünkü hala CodeBlocks'u kuramadım Fedora'ya. Tabii bu benimle alakalı kimsenin kabahati yok, mesela OpenCv'yi de ffmpeg li olarak kuramadım. Linux versiyonuyla ilgili olarak direk binary programı kullanmayı deneyebilirsiz, FLTK static olarak bağlandığından sanırım çalışacaktır. Her ne ise gevezeliği bırakıp linkleri verelim
BushSweeper 1.0 Linux binary and source
BushSweeper 1.0 Windows binary and source

Cuma, Ocak 25, 2008

Nihayet toparlandım !


Başımdan geçen o tatsız olay sonrasında mütevazi bir bilgisayar aldım faka bir türlü fırsat bulup Linux yükleyememiştim. Önce eski alışık olduğum Suse 10.1 i kurmaya çalıştım maalesef mümkün olmadı - Hard Diski bulamıyor ! - yeni versiyonunu da indirmeye takatım yetmiyor 4 GB'ın üzerinde. Her ne ise efendim bir kaç ay önce Bilgisyar dergilerinden biri Fedora 8 in DVD iso'nu vemişdi . Linux dağıtımlarından her hangi birine özel bir hayranlığım yok, ben de kaprissiz Fedora 8'i kurdum. Kurarken DVD'nin içinde ne var ne yok hepsini kurmasını söyledim. malum Linux da program kurulumu bir dert, hele de internetiniz yoksa. Boşunamı DVD li dağıtımlarını tercih ediyorum sanıyorsunuz.

Konuyu dağıttım farkındayım. Şu an itibarıyla artık bir Fedora kullanıcısıyım. FLTK , FANN, Audiere, OpenCv gibi kütüphaneleri kurdum. Yalnız ffmpeg'i kuramadığımdan OpenCv video desteksiz. ve Halen CodeBlocks'u kuramadım - beceriksizlik işte - Tabiki pes etmedim çalışmalara devam ediyorum. CodeBlocks yerine KDevelop ile şimdilik idare ediyorum. Bundan sonra yine eskisi gibi yayınlarımız Cross-Platform olacak.

Bu arada eski programlarımı Fedora altında derlemeye başladım. Mesela artık Fedora altında mp3 leri BluePlayer ile dinliyorum, Fedoranın ruhuna aykırı ama ne yapalım. Unutmadan çoook yakın zamanda BushSweeper'in son halini yayınlayıp bitireceğim.

Bugünlerde Dolunay var biliyormuydunuz ? Tuhaf bir şekilde beni etkilemeye başladı ;) anlaymadım...

Çarşamba, Ocak 16, 2008

Geç kalmış bir muhasebe 2007


Üstteki grafiği counter servisinden aldım geçen seneki durumu özetliyor..
Şöyle bir geri dönüp bakıyorumda Epey iş yapmışız geçen sene..

Bizim Fatih Presta'nın 2DPathfinder kütüphanesi için bir ugulama programı : PathFinder Demo
Download Sayısı : Windows (520) Linux (165)

Bush'un hatırına yaptığımız BushSweeper mayın tarlası benzeri bir oyun programı Download Sayısı : Windows (126) Linux (290)

Genetik metodla 4 Bilinmiyenli Denklem Çözümü Download Sayısı : 377

YSA ile Tic-Tac-Toe : Download Sayısı : 300
KGDD lerde Nodul sayısı tespiti : Hem OpenCv hemde FANN için örnek program... Download Sayısı : 102

Yeni Projelerimden Fl_OpenCv ve de Basit OpenCv uygulamaları

Treshold + Fl_OpenCv 0.3 Download Sayısı : 269

cvBlobsLib kullanım örneği ve Fl_OpenCv 0.5 Bu programa
http://opencvlibrary.sourceforge.net/cvBlobsLib de Project samples kısmında link de verildi. Download Sayısı : 295

Yüz Bulma ve Fl_OpenCv 0.7 Download Sayısı : 462

ve Bir diğer Yeni Projem FannTool Download Sayısı : Windows (124) Linux (115)
Geçen sene boyunca pek çok dizi yazımız da oldu

* Debugging Hakkında 1 2
* Cross-Platform Programlama hakkında 1 2 3 4 5
* FANN ( Fast Artificial Neural Network Library) kullanımı hakkında 1 2 3
* Kırılamayacak Program olurmu ? sorusuna cevap aradığımız yazılar 1 2 3
* OpenCv'ye Giriş 1 2 3 4 5

Gelelim yapmadıklarımıza BluePlayer ile hiç uğraşmadım ve yarım olarak kaldı ve BushSweeper'ı tamalayamadım

Peki bu sene neler yapacağız. Öncelikle Yarım kalan projelerimi tamamlamak istiyorum

BluePlayer'a AudioCD desteği eklenecek
Bush emekli olmadan Bushsweeper'ı tamamlamak istiyorum Neme lazım Irakı özgürleştirdikleri gibi bütün dünyayıda özgürleştirmeye çalışacak başka Bushlar çıkabilir ! Bir de bush hakkında usturuklu bir yazı lazım İngilizce.

Fl_OpenCv zaten tamamlanmak üzere bug raporu felan gelmezse versiyon numarası 1.0'a yükseltilip tamamlanacak belki HighGUI deki video write fonksiyonlarıda münassip şekilde eklenebilir...

FannTool'un durumu biraz karışık, Ufak tefek düzenlemelerin dışında Run with File Ve Data Process kısmının yazılması lazımdı. Steffen Nissen gsoc2007 deki yeniliklerle birlikte FANN'ın yeni versiyonunu Şubat gibi çıkaracağını ve Pek çok yeniliklerin yanı sıra eski versiyonuyla uyumsuz olacağını açıkladı. Bu durumda FannTool'un bu versiyonuna uzun vadeli eklemeler yapmamı gereksizleştiriyor. FANN 3.0 çıksın bu projenin yönü ona göre değişecek gibi. Ama en azından - HB ile görüşmelerimizden anladığım - FannTool'un kullanımına dair bir yazı yazmak lazım.

Yarım kalan işlerimizin dışında Yeni projelerimizde olacak inşallah. Öncelikle Kendini Jardel sanan arkadaşa bir orta sözüm var ;) Daha sonra Volkan kaytarmazsa ortak bir şeyler yapacağız. Bütün bunların dışında Bulanık mantık konusunda bir pratik uygulama, Poor because Poor'un devamını ve AK nin sayesinde gördüğüm YSA ile kenar bulma üzerine yazmayı da istiyorum. Nasip Kısmet artık. Öneri ve istekleriniz olursa -olmazda hani belki - memnuniyetle ilgilenmeye çalışırız. Bekleriz efendim...

SetEnaniyet(KAF_DAGI);
Hey gidi hey siz ne zannediyorsunuz tuhaf bir adamın yazdığı tuhaf yazılarla dolu bir tuhaf sitemi ? Bu yazıları Ne Addison-Wesley ler ne McGraw-Hill/Osborne istedide vermedim. İsterler Tabii Böyle Pratik uygulamalarıyla birlikte bu konularada böyle yazıları kim kaybetmişde kim bulsun. Kıymetini bilin Kıymetini !
RelaseEnaniyet();

Çarşamba, Ocak 02, 2008

Fl_OpenCV 0.8 ve Inpainting




Fl_OpenCv nin yeni versiyonunu çıkarmış bulunuyoruz. Yeniliklerine gelince artık callback atayarak fare eventlerini kullanabiliyorsunuz fakat OpenCv değil FLTK eventları olarak...

Aynı daha önceki versiyonlarında olduğu gibi bir de örnek uygulamayla birlikte geliyor. Inpaint; Resimlerden nesne silme bozulmaları düzeltme gibi işler için kullanılan bir method. Bakınız üstteki resimler. Detaylı bilgi için google sizi bekliyor. OpenCv de cvInpaint diye hazır bir fonksiyon var. Biz de onu kullandık zaten. Navier-Stokes ve Alexandru Telea diye geçen İki farklı metodu kullanabiliyorsunuz.
Kullanımı basit inpaint yapmak istediğiniz yeri gidip fareyle işaretliyorsunuz. Inpaint tuşuyla gereken işlem yapılıyor. Kullanılacak metodu da isterseniz değiştirebilirsiniz. Neyse efendim lafı fazla uzatmayalım buyrunuz.
Inpaint with Fl_OpenCv 0.8

Cumartesi, Aralık 29, 2007

Poor because Poor !

Yıllar yıllar evvel - hey gidi günler hey - Üniversitede okurken diğer mühendislik bölümlerinin aksine biz ekonomi dersini İktisadi ve idari bilimler fakültesinden aldık. Diğer mühendislik bölümleri Mühedislik Bilimlerinden alıyordu. Ve bizim dönemimizde bir de yeni bir uygulama yapıldı. Dersin Her bölümünü ayrı bir hoca gelip ders anlatmıştı. Ekonominin bir çeşit mission impossible* olduğunuda oradan öğrendik. Hocalardan biri Fakir ülkeler niçin fakirdir üzerine bir şeyler anlatmıştı. Ve o Anllattığı şeyler aklımızda yer etmişti . Çok sonra öğrendim ki bu konunun evveliyatı varmış.
ben size konuyu oradan aktarmak istiyorum

...

ODTÜ, İdari Bilimler Fakültesi'nin kurucusu Fuat Çobanoğlu, 1959 yılında bizlere ‘‘Fakir milletler, niçin fakirdir?’’ diye yazılı bir sınav vermişti. Bir hafta sonra yazılının sonuçlarını sorduğumuzda, ‘‘Nasıl olsa saçmalamışsınızdır, zaten ben káğıtları mandalcıya verdim’’ dedi. İsyan ettik. Peki öyleyse, sınavı sözlü olarak tekrar ediyorum; sırayla cevaplayın dedi. Hatırladığım kadarıyla cevaplarımız üç sebepte birleşti. Bunlardan birincisi, ‘‘Medeniyet sıcaktan kaçar’’, ikincisi ‘‘Dinler, gelişmeyi köstekler’’, üçüncüsü ise ‘‘Gelişmiş ülkeler, az gelişmişleri sömürür’’ idi. Fuat Bey, medeniyetin sıcak ülkelerde kurulduğunu söyleyerek, tek fiskeyle birinci cevabı yıktı. Dinlerin gelişmeyi kösteklediği iddiasına karşı, insanlığın tarihi gelişiminde, dinlerin medeniyete çok büyük katkılarda bulunduğunu örnekleriyle anlattı. O sebep de havaya uçtu. Geldik üçüncü sebebe. Yani ‘‘sömürü’’ teorisine. Şu soruyu sordu. Niçin siyah Afrikalılar, yaptıkları top ve tüfeklerle, gemilerine binip Avrupa sahillerine çıkarak beyaz Avrupalıları sömürge ulus haline getirmediler? Verdiğimiz cevap, siyahların o kadar ileri olmadığı idi. Çobanoğlu, işte ben de onu soruyorum. Niçin siyahlar, beyazlar kadar ileri gidememiştir? Sizin cevabınız, geriliğin (yani fakirliğin) nereden kaynaklandığının değil, geri kalmış olanların niçin başının beladan kurtulamadığının açıklaması.

Peki hocam siz söyleyin, dedik. Fakir ülkeler, niçin fakirdir?

(Son söz, Çobanoğlu'ndan.)

SON SÖZ: Fakir ülkeler, fakir olduğu için fakirdir.
...
Saçamamı buludunuz. Şöyle açıklayayım Pek çok sektörde para kazanabilmeniz için para harcamanız gerekir. yine Ege Cansenden devam edelim

‘Fakir ülkeler niçin fakirdir’ sorusuna verilen ‘çünkü fakirdir’ cevabı, saçma değildir. Çünkü, fakirlik hangi sebepten başlamış olursa olsun; fakir ülkelerin, fakir oldukları için fakir kalma ihtimalleri büyüktür. Fakirlik, tuzaklarlarla dolu bir kısır döngüdür. Önemli olan, bu çemberinin nereden ve nasıl kırılacağının bilmektir. Zenginleşememek ‘fakirlik tuzaklarından’ kurtulamamaktır. Dolayısıyla, refaha giden yolun birinci adımı, ‘fakirlik tuzakları’nın neler olduğunu teşhis ve bunlardan kurtulma yöntemlerini bulmaktır.

Peki bütün bunların burada işimi ne ? açıklayayım. Bence Programlama bu kısır döngüyü kırmamızda yardımı olacak bir sektördür. Çünkü Başlangıç için gereken sermayeye** sahibiz ve dünyanın herhangi bir yerindeki yazılımcının imkanları bizim burada sahip olduğumuzun üstünde değil.

Peki niçin olmuyor niçin dünya çapında yazılım şirketlerimiz yok. Anlatacağız efendim sabırlı olun ...

* Economics is the study of the use of SCARCE resources to SATISFY UNLİMİTED human wants
** Orta halli bir bilgisayar İntenet gibi devasa bir kaynak ve Çalışan bir kafa ve en önemlisi çalışan insan. En önemlisi diye özellikle yazdım diğerlerine fazlasıyla sahip olupta internette ömür çürüten pek çok insan var...

Salı, Aralık 25, 2007

FLTK Linkleri


Yazdığım programların tamamında FLTK kullandığımı biliyorsunuz. Bu programları epey bir indiren de var downloads sayıları öyle gösteriyor. Ama kimseden kod konusunda yorum ve düzeltme isteği gelmiyor. Ben bunu FLTK nın pek bilinmemesine bağlıyorum. Bu eksikliğe bir nebze olsun faydası dokunacak kaynakları göstereyim istedim
Öncelikle Ana Site
http://www.fltk.org/
Online Dökümantasyonu
http://www.fltk.org/documentation.php/doc-1.1/toc.html
PDF versiyonu da var referans bilgilerinin yanında nasıl kullanılacağına dair örnekler ve yazılar içeren bir e-kitap.

FLTK nin 3 ana versiyonu var 1.1.x , 1.3.x ve  2.0.x. Sondan başlarsak  2. versiyonu daha gelişmiş bir sürüm olarak dizayn ediliyormuş fakat kararlı bir sürümü yok. Yakın gelecekte de olacak gibi görünmüyor, tavsiyem hiç bulaşmayın.

1.1.x serisi daha bir oturmuş 1.1.9 kararlı sürümü olarak var 1.1.10 in eli kulağında. Ve söylenenlere göre bu 1.1.x serisinin son sürümü olacak. Benim tavsiyem vede kullandığım 1.1.x versiyonu.

Bana UTF8 lazım diyorsanız  1.3.x de UTF8 de var. yapı olarak 1.1.x serisine benziyor extra widgetlerde eklenmesi düşünülüyor. Halen kararlı bir sürümü olmasada oldukça kararlı bir yapısı olduğu söyleniyor. Zaten 1.1.10 dan sonra bütün çalışmalar bu seriye yönelecek gibi görünüyor. 


FLTK öğrenecekseniz size ilk seçenek olarak Erco'nun videolarını önerebiliriz
Yine Erco'nun küçük örneklerden oluşan Erco's FLTK Cheat Page de işinize yarayacak pek çok şey bulabilirsiniz Size tavsiyem referans olarak da kullanın.
Oralara  kadar gitmişken  Fl_Table ,  Fl_Native_File_Chooser  ve Fl_Tree ye bakmadan geçmeyin çok faydalı ve kullanışlı bileşenler.

Bir FLTK ya giriş yazısı : Beginner Fltk Tutorial

Pekiii bir yerlerde takıldınız nereden yardım alacaksınız 2 seçeneğiniz var. Ana sitedeki forum kısmı yada GIDForums -> Computer Programming Forums -> FLTK Forum
Son bahsettiğimiz. forumdan FLTK kullanımı ile ilgili iki makale
GUI programming with FLTK
FLTK && fluid In Motion

FLUID den daha önceleri bahsetmiştim. FLTK'nın GUI tasarlamak için çok pratik bir aracı.
FLTK ve FLUID için hazırlanmış bir dizi makale 1 2 3 4 yazılar Almanca fakat FoxLingo'nuz varsa problem yok :)

FLTK nın en büyük eksikliği insan Kullanan ve ilgilenen insan sayısı artsa pek çok GUI kütüphanesini geçer. Çünkü çok sağlam ve bir temeli var. Hemen her platformda çalışıyor.
Ama ilgilenen sayısının eksikliği, Kaynak, ekstra bileşen -widget - ve örnek azlığına sebep oluyor. Bu eksikliği bir nebze olsun gidermenin yolu FLTK kullanılarak yazılmış programların
Kodlarını inclemekten geçer. Bunlardan bazıları

Gmsh: a three-dimensional finite element mesh generator
Avimator is an easy-to-use, open source tool for creating and editing avatar animations for Second Life.
PosteRazor Make your own poster!
Nuke : The Nuke-2D compositing software allows for the creation of complex interactive digital composites using relatively modest computing hardware. FLTK nın babası Bill Spitzak'ın yazdığı ödüllü program ayrıca bakınız Linux and Star Trek ve FLTK ile yapamayacağınızın olmadığını anlayın
flPhoto : flPhoto is a basic image management and display program
Sudoku : Sudoku game
SPTK library : FLTK temelli bir GUI kütüphanesi yanında pek çok Veritabanına ulaşmanızı sağlayan SPDB ile birlikte
Ve Ekstra bileşenler
Fltk_Contour : The Fltk_Contour is an attempt to develop an easy scientific data visualization widget for the FLTK library.
Flmm : Flmm is a collection of new and improved widgets for the FLTK toolkit.

Bütün bunların üstüne benim yazdığım programlarda sizin için -pek iyi olmasada -örnek sayılabilir. FannTool, BluePlayer, BushSweeper, ...
FLTK öğrenmeye başlarsanız elimden geldiğince yardımcı olmaya çalışacağımı söylememe gerek yok sanırım...

Cumartesi, Aralık 01, 2007

Ölümden Yaşama


Baş koymuşum Türkiyemin yoluna
Düzlüğüne yokuşuna ölürüm
Asırlardır kır atımı suladım
Irmağının akışına ölürüm

Uğrunda ölürüz öldürürüz. Bir şehidin yerini bin alır. En son ocağımız sönmeden sönmez bu şafaklarda yüzen al sancak. Fakat...

Bu ülke 89'dan beri su alan bir gemi. Fransız ihtilali yalnız Batı feodalitesini değil ihtiyar şark'ın da ölümü olacaktır. Osmanlı, bir başka medeniyetin varlığını o zaman farkeder: henüz ne imanını kaybetmiştir ne de haysiyetini... Zirvelerden bakar Diyar' ı küfre; Avrupa maddedir kendisi ruh. Bu tanımadığı dünyanın kesif ve müselsel taarruzları karşısında kuvvetinden şüphe etmeye başlar,.. Hayret yerini hayranlığa bırakır., hayranlık Teslimiyete.

Fakat kabul edelim ki cenk devri bitti Bayrağın bayrak olması için kan, Toprağın vatan olması için ölmek yetmiyor. Iramağın akışına ölmek değil, bir zerresini boşa akıtmamak için alınteri dökmek lazım. Sıktığında şüheda fışkıran toprağın düzlüğünü, yokuşunu artık alın terimizle sulamanın vakit gelmedimi ?
Bayrakları bayrak yapan üstündeki kandır,
Vatan eğer uğrunda ölen varsa vatandır.
Yüzyıllarca uygulanmış ama yeterli olmamıştır. Üstüne birazda

Bayrakları bayrak yapan üstündeki alınteridir,
Vatan eğer uğrunda yaşayan varsa vatandır.
demek lazım

Mehmet Akif'in "Allah bir daha bu millete istiklal marşı yazdırmasın" duasına canı gönülden amin deyip bunun için gerekli olan fiili duaya -çalışmaya uğrunda yaşamaya - bir an önce başlayın.

Not : Bu yazı kısmen Uçaktaki bir tanımadıkla yapılan memleket kurtarma sohbeti sonrası Münih te bir Otel odasında güneş doğarken yazıldı

Perşembe, Kasım 22, 2007

OpenCv'ye Giriş 5

OpenCv'ye giriş seri yazılarımızı - Nihayet - bitiriyoruz. Yazı dizimize olan müthiş ilgi - ! sizlik - için teşekkürlerimizi bir borç biliriz

Bu yazımızda video ve web camden görüntü almayı anlatıyoruz. bu işe elin oğlu capture demiş.
Hareketli görüntü dediğimizde zaten görüntünün peş peşe gösterilmesi ile oluşuyor.

* capture için CvCapture tipinde bir işaretçi kullanıyoruz
CvCapture *cap;
* Video Dosyası için cvCaptureFromFile fonksiyonu kullanıyoruz.
CvCapture* cvCaptureFromFile( const char* dosya_adi );
cap=cvCaptureFromFile("video.avi");
* Web Cam için cvCaptureFromCAM fonksiyonu kullanıyoruz.
CvCapture* cvCaptureFromCAM( int index );
index : Kamera No, index olara -1 kullandığımızda hangi kamera varsa onu kullanır.
cap=cvCaptureFromCAM( -1 );
* Capture ile işimiz bittiğinde cvReleaseCapture fonksiyonuyla ile gereken temizlik yapılıyor.
void cvReleaseCapture( CvCapture** capture );
cvReleaseCapture( &cap );
* Alacağımız hareketli görüntünün çeşitli özelliklerini öğrenmek için cvGetCaptureProperty fonksiyonu kullanılır.
double cvGetCaptureProperty( CvCapture* capture, int property_id );
capture : cvCaptureFromFile veya cvCaptureFromCAM ile elde ettiğimiz işaretçi
property_id : Öğrenmek istediğimiz özellik
yani
CV_CAP_PROP_POS_MSEC : Video dosyası için milisaniye cinsinden geçen süre
CV_CAP_PROP_POS_FRAMES : Frame indeksi - 0 ilk -
CV_CAP_PROP_POS_AVI_RATIO : - Video dosyası için gösterilen yerini (0 ile 1 ) gösteren indeks 0 başlangıç 1 bitiş
CV_CAP_PROP_FRAME_WIDTH : Görüntü Eni - X -
CV_CAP_PROP_FRAME_HEIGHT : Görüntü Boyu - Y -
CV_CAP_PROP_FPS : Saniyedeki Görüntü sayısı
CV_CAP_PROP_FOURCC : 4 karekterden oluşan Video Sıkıştırma Format kısaltması - codec - CV_CAP_PROP_FRAME_COUNT - Video dosyasındaki frame sayısı
* Bahsi geçen Özellikleri değiştirmek için cvSetCaptureProperty fonksiyonu kullanılır benzeri şekilde
int cvSetCaptureProperty( CvCapture* capture, int property_id, double value );
property_id : Bir önceki fonksiyonda geçti
value : Değiştirmek istediğimiz özelliğin yeni değeri.
Dikkat edilmesi gereken bir nokta her özelliği istediğiniz gibi değiştiremiyorsunuz. Bazıları Web Cam için bazıları Video dosyası için geçerli detay için OpenCv dökümantasyonuna bakın

* Sıra görüntüyü almaya geldi bu iş için cvQueryFrame fonksiyonunu kullanıyoruz
IplImage* cvQueryFrame( CvCapture* capture );
oda bize daha önce öğrendiğimiz IplImage cinsinden görüntüyü veriyor gerisi artık bize kalmış OpenCv nin imkanlarıyla istediğimizi yapabiliriz...

Örnek Kod için Buyrunuz : Ders5

Deeep Not : Bu serimizi hele şükür bitirdik. Mütevazi bir bilgisayarda aldık ama henüz içini ayarlayamadık, Yeni projelerimiz var, yazılacak pek çok konu da var. Ama Bir taraftan okur-yazamaz olmamız diğer taraftan vakitsizlik engelliyor. Arayan soranların hatrına İnşallah yazmaya başlayacağız.






Cumartesi, Kasım 10, 2007

Uzun yola çıkmaya hüküm giydim !

Mataramda Tuzlu Su
West Indies,Kızıl Elma,İtaki,Maçin!
Uzun yola çıkmaya hüküm giydim.
Beyazların yöresinde nasibim kalmadı
yerlilerin topraklarına karşı şuç işledim
zorbaların arasında tehlikeli bir nifak
uyrukların arasında uygunsuz biriyim
vahşetim
beni baygın meyvaların lezzetinden kopardı
kendime dünyada bir
acı kök tadı seçtim
yakın yerde soluklanacak gölge bana yok
uzun yola çıkmaya hüküm giydim.

Uzak nedir?
Kendinin bile ücrasında yaşayan benim için
gidecek yer ne kadar uzak olabilir?
Başım açık, saçlarımı ikiye
ortadan ayırdım
kimin ülkesinden geçsem
şakaklarımda dövmeler beni ele verecek
cesur ve onurlu diyecekler
halbuki suskun ve kederliyim
korsanlardan kaptığım gürlek nara
işime yaramıyor
rençberlerin o rahat
ve oturmuş lehçesinden tiksinirim
boynumda
bana yargı yükleyenlerin
utançlarından yapılma mücevherler
sırtımda sağır kantarı gizli bilgilerin
mataramdaki suya tuz ekledim, azığım yok
uzun yola çıkmaya hüküm giydim.

Bir hayatı,ısmarlama bir hayatı bırakıyorum
görenler üstünde iyi duruyor derdi her bakışta
askerken kantinden satın aldığım cep aynası
bazı geceler çıkarken
uçarı bir gülümseyişle takındığım muşta
gibi lükslerim de burda kalacak
siparişi yargıcılar tarafından verilmiş
bu hayattan ne koku, ne yankı, ne de boya
taşımamı yasaklayan belgeyi imzaladım
burada bitti artık işim, ocağım yok
uzun yola çıkmaya hüküm giydim.


İsmet Özel
Bir kaç günlüğüne Uzakta - yurt dışında- olacağım dualarınızı eksik etmeyin

Perşembe, Kasım 01, 2007

EXPIRED DOMAIN - mdkgroup

Genç düşünce, forumlarda kanat çırpar. Yasak bölge tanımayan bir tecessüs; tanımayan, daha doğrusu tanımak istemeyen. En çatık kaşlılarında bile insanı gülümseten bir "itimâd-ı nefs", dünyanın kendisi ile başladığını vehmeden bir saffet var. Tomurcukların vaitkâr gururu.

Bir şehrin iç sokakları gibi mahrem ve samimidirler. Devrin çehresini makyajsız olarak onlarda bulursunuz. Müzeden çok antikacı dükkânı, mühmel ve derbeder.

Forum, hür tefekkürün kalesi. Belki serseri ama taze ve sıcak bir tefekkür. Kitap, çok defa tek insanın eseri, tek düşüncenin yankısı; Forum bir zekâlar topluluğunun. Bir neslin vasiyetnamesidir forum; vasiyetnamesi, daha doğrusu mesajı. Kapanan her forum, kaybedilen bir savaş, hezimet veya intihar...
Bir süredir mdkgorup forumuna girmeye kalktığımda "EXPIRED DOMAIN" mesajıyla karşılaşıyorum. Reverse Engineering Konusunda pek çok şey öğrendiğim ve MrStop, Vona, Slayer, Odin, ve adınını sayamadığım pek çok zeka ile sanal olarak tanışma fırsatı bulduğum
Forumun bu şekil de kapanması dokundu bana olmasın sonumuz böyle !

Pazartesi, Ekim 29, 2007

OpenCv'ye Giriş 4


Bu dersten önceki öğrendiklerinizle elinizdeki görüntü ile ilgili hertürlü işlemi yapabilirsiniz. Fakat gerek yok OpenCv size pekçok temel Görüntü işleme fonksiytonlarını sağlamış numune bazından 5 tanesi programımızda kullancağız.
Programımızı indirin, inceleyin ve deneyin : ders4
Denemek için üstteki resimden bir konu mankeni seçiyoruz
Gözünüz boşuna Lena'yı aramasın. Hem zaten biz bu mankeni BushSweeper da kullanmıştık. Konunun Detayları Görüntü işlemeye giriyor ve bu konuda bilgi sahibi olmanız lazım ben işlem sonuçlarını verip geçeceğim

Erode : Aşındırma (erozyon, erosion)

Kullanılan fonksiyon cvErode
Detayı : http://homepages.inf.ed.ac.uk/rbf/HIPR2/erode.htm


Dilate : Genişletme (dilation)
Kullanılan fonksiyon cvDilate
Detayı : http://homepages.inf.ed.ac.uk/rbf/HIPR2/dilate.htm

Smooth : Yumuşatma !
Kullanılan fonksiyon cvSmooth
Detayı : http://homepages.inf.ed.ac.uk/rbf/HIPR2/gsmooth.htm



Threshold :
Kullanılan fonksiyon cvThreshold Detaylı kullanımı için bakınız
Detayı : http://homepages.inf.ed.ac.uk/rbf/HIPR2/threshld.htm

Edge : Kenar Bulma - Canny metoduyla -


Kullanılan fonksiyon cvCanny
Detayı : http://homepages.inf.ed.ac.uk/rbf/HIPR2/canny.htm

Çarşamba, Ekim 24, 2007

Çalınabilenler ve Çalınamayanlar

Eşkıyalar eşyalarla yeni bir yola revan olmadan önce delikanlı soyulan kafileden kopup peşlerinden koşmaya başladı yol kesenlerin. Herkes canını kurtardığına sevinirken o malının arkasından feryat ediyor, nefes nefese yetişmeye çalışıyordu haydutlara.

“Defterlerim!” diyordu. “Onlar sizin işinize yaramaz! Ne olur geri verin onları!” Reis, bir el işaretiyle durdurdu adamlarını ve bu acemi gence gülümseyerek kulak verdi: “Diğer eşyalarım sizde kalsın. Sadece defterlerimi istiyorum! Üç yıldır sırf bu notları tutabilmek için memleketimden uzak kaldım. Bu bilgileri edinebilmek için diz çöküp dirsek çürüttüm. Her sayfasında göz nuru var onların!” Bu sözler üzerine haydutların başı gülümsemesine bir adım daha attırıp gülmeye başladı. “Sen nasıl olur da ilim tahsil ettiğini söylersin. Baksana defterlerin ve notların elinden alınınca ilimsiz, irfansız kalıveriyorsun!” dedikten sonra adamlarına kitap ve defterlerin geri verilmesini emretti. Genç sevinçle notlarına kavuşurken, hüzünle ayrıldı oradan. Eşkıyanın dudaklarından çıkan bu iki cümle makasın iki kanadı gibi zihninde sürekli işliyor, kendini savunmak için attığı bütün düğümleri bir çırpıda kesip atıyordu. Adam haklıydı. Memleketine döner dönmez ilk işi kağıtta olanları kalbine nakşetmek olmalıydı. Genç söyleyene değil söyletene baktı ve üç yılda yazdıklarını üç yılda temize çekti kalbinde. *
Şimdi Bu kıssada nereden çıktı diyebilirsiniz, açıklayayım. Dün gece evimden Bilgisayarım çalındı, Ama bilgilerim çalınamadı - Elhamdülillah ala külli hal sival-küfri ved-dalal -

Deme şu niçin şöyle
Yerincedir ol öyle
Bak sonuna sabreyle
Mevlâ görelim neyler
Neylerse güzel eyler
Yalnız geciken yazı ve programlar için ; zamanım yok bahanesine bilgisyarım yok bahanaesi de eklenebilir dikkatinize :)


* Kısasa daki genç İmam-ı Gazalidir...

Cumartesi, Ekim 20, 2007

Fl_OpenCV 0.7 çıktı


Sonunda epeydir planladığım özellikleri Fl_OpenCv ye ekledim. bazı kısımları yeniden yazdım.
Yeni özelliklerine gelecek olursak
  • WebCam ve Video dosyasından görüntü alabiliyoruz.
  • Görüntüyü pencere içine sığacak halde ebatlandırarak gösterebiliyoruz.
Yeni özelliklerin birkısmının kullanımını gösterecek şekilde Yüz bulma örnek programız geliştirildi. video ve webcam görüntüsü kullanabilir hale getirildi.
Indirmek için : NewFace

Not : OpenCv'ye Giriş yazı dizimizin dördüncüsünün - temel Görüntü işleme fonksiyonları - örnek programı epeydir hazır. Bir türlü elim varıp yazısını yazamadım. Pek ilgi gösterende olmadı zaten, Yazının beşincisi - Video fonksiyonları - sonuncusu olabilir. Kısmet...

Pazartesi, Ekim 15, 2007

FannTool - 0.80 Çıktı


FannTool'un yeni versiyonu çıktı.
Başlıca göerebileceğiniz değişiklik
Artık eğittiğiniz YSA yı FannTool içinden çalıştırbilemenizdir.
Vakit bulabilirsem bir de kullanımını anlatacak bir yazı hazırlamam lazım.
FannTool - 0.8 for Linux
FannTool - 0.8 for Windows

İstek öneri ve hata bildirimlerinizi memnuniyetle bekleriz...

Pazartesi, Ekim 08, 2007

Mevlam sana ersem diye

Mevlam sana ersem diye
Aşka düşen pervaneyim
Cemalini görsem diye
Aşka düşen pervaneyim

Derdinle ağlar inlerim
Aşka düşer hep inlerim
Bülbül şakır ben dinlerim
Aşka düşen pervaneyim

Göz yaşlarım durmaz akar
Seller gibi ağlar coşar
Vuslat ümidiyle yaşar
Aşka düşen pervaneyim

Kevni temaşa eylerim
Nevayı aşkı söylerim
Sensiz cihanı neylerim
Aşka düşen pervaneyim
Epeydir dinlemediğim bir ilahiydi bu sabah yeniden dinledim...
Tavsiye ederim dinleyin
Kadir geceleriniz hakkınızda hayırlara vesile olsun...
Dualarınıza muhtacız bekleriz...

Pazar, Ekim 07, 2007

OpenCv'ye Giriş 3

ilk örneğimizde görüntü dosyasını okuyup ekranda gösterdik. Ama eksik bir nokta kaldı kaydetmek için ne yapacağız ?
Görüntüyü Kaydetmemiz gerektiğinde cvSaveImage fonksiyonunu kullanıyoruz.

int cvSaveImage( const char* filename, const CvArr* image );
filename : Kaydedilecek Görüntüye vereceğimiz dosya ismi dosya isminde kullandığımız
uzantıya göre kaydedilir. mesela a.jpg dersek jpg formatında a.bmp dersek bmp formatında
kaydedilir.
image : Kaydedilecek Görüntünün işaretçisi

Görüntü dediğimiz şey Renk noktalarından - piksel - oluşan 2 boyutlu bir matristir. görüntüyle ilgili işlemler için bizim bu noktaları okuyup yazmamız lazım. Piksel deki renk değerleri değişik şekillerde tutulabilir ben yaygın olan iksini belirteceğim
Gri Resim : Her piksel renk değeri tek kanalda 1 byte da tutulur 0 siyah en koyu -255 beyaz en parlak renk
RGB Renkli Resim : Her renk değeri Kırmızı - Red - Yeşil -Green- ve Mavi -Blue- olmak üzere 3 kanalda tutulur her kanal büyüklüğü 1 byte dır.
Konunun detayları için bakınız : Sayısal Resim , Renkler , Gri ve Renkli Resimler

OpenCv de bu işi nasıl yaparız ?
Biraz karmaşık görülebilecek fakat en hızlı yolu işaretçileri kullanmaktır. bu değerlere ulaşmak için IplImage yapısını kullanacağız. görüntü bir matrsidir dedik
sütün sayısı -x ekseni - yani eni width değerinde tutulur.
satır sayısı -y ekseni - yani yüksekliği height değerinde tutulur
IplImage in imageData işaretçisi piksel değerlerinin başlangıcıdır.

int height = grnt->height; // yükseklik
int width = grnt->width; // En
int step = grnt->widthStep; // En x Kanal
int channels = grnt->nChannels; // Kanal sayısı
uchar *data = (uchar *)grnt->imageData;
uğraşmak istediğimiz pikselin koordinatlarını (x y) kullanarak
data[y*step+x*channels+k]
yani (10,20) koordinatlarındaki piksel için
Gri resim için
data[20*step+10*channels+0]
RGB Renkli resim için
data[20*step+10*channels+0] // Mavi
data[20*step+10*channels+1] // Yeşil
data[20*step+10*channels+2] // Kırmızı
şeklinde okuyup yazabiliriz.

Aşağıda bir örnek program var Örnek Program da iki tane görüntü açıyoruz Ekranda gösterirken İlk görüntüden ikinci görüntüye geçiş yapıyoruz. İlk görüntü silikleşirken ikinci görünmeye başlıyor.
Ders3
indirin çalıştırın inceleyin anlamadığınız yer olursa - olmaz ya hani belki - çekinmeden sorabilirsiniz...


Örnekte ilk defa kullandığımız fonksiyonları kısaca anlatalım
IplImage* cvCreateImage( CvSize size, int depth, int channels );
İstenen özelliklerde Boş görüntü oluşturmak için kullanılır.

size : Oluşturulcak Görüntünün ebatları
CvSize ebatları tutan bir yapıdır
typedef struct CvSize
{
int width; /* width of the rectangle */
int height; /* height of the rectangle */
}
CvSize;
şeklinde tanımlanmış değerlere atama yapmak için
cvSize( int width, int height );
fonksiyonu kullanılır.

depth : Biz buna renk derinliği diyelim Oluşturulacak görüntünün piksel renk değerlerinin
her kanal için büyüklüğü tanımlanır. biz genellikle IPL_DEPTH_8U yani 8 bit - 1 byte - işaretsiz tamsayı kullanıyoruz. tabii değişik alternatiflerde var
IPL_DEPTH_8U - unsigned 8-bit integers
IPL_DEPTH_8S - signed 8-bit integers
IPL_DEPTH_16U - unsigned 16-bit integers
IPL_DEPTH_16S - signed 16-bit integers
IPL_DEPTH_32S - signed 32-bit integers
IPL_DEPTH_32F - single precision floating-point numbers
IPL_DEPTH_64F - double precision floating-point numbers
gibi kafanızı karıştırmayın kullandıkça öğrenirsizin

channels : her piksel için kullanılan kanal sayısı 1 gri sevyeli resimler için 3 RGB renkli resimler için.
void cvResize( const CvArr* src, CvArr* dst, int interpolation=CV_INTER_LINEAR );
Görüntünün ebatlarını değiştirmenize yarar

src : Ebatı değiştirilecek resim
dst : Yeni ebatları içeren resim
interpolation : Ebat değişikliği işleminde kullanılacak yöntem
  • CV_INTER_NN - nearest-neigbor interpolation,
  • CV_INTER_LINEAR - bilinear interpolation (used by default)
  • CV_INTER_AREA - resampling using pixel area relation. It is preferred method for image
  • decimation that gives moire-free results. In case of zooming it is similar to CV_INTER_NN method.
  • CV_INTER_CUBIC - bicubic interpolation.
void cvMoveWindow( const char* name, int x, int y );
Pencereyi ekranda istediğiniz yerde konumlandırmanıza yarar.
name : Konumlandırılacak pencerenin adı
x ve y : Pencerenin ekrandaki sol üst köşesinin konumu

Son olarak Opencv için bir chm dosyası oluşturdum
Opencv.chm
indirin. CodeBlocks içinde
Settings -> Environment -> Help Files kısmından yardım dosyası olarak tanımlayın
ulaşımınız kolay olsun.