Sayfalar

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.

Cumartesi, Ekim 06, 2007

Kıyamet Nezaman Kopar ?


MCH - Ooo bk hoş geldin sen buralara uğrarmıydın ?
BK - İş güç pek fırsat bulamıyoruz ! ... Hocam nasılsınız ?
- Allah a şükürler olsun...
...
- Ben bir şey sormak istyordum ?
- buyur bildiğimiz kadarıyla cevaplandırmaya çalışırız.
- Efendim Ozon tabakası delinmiş buzullar erimeye başlamış küresel ısınma ve kuraklık başlamış, Ekolojik dengeler bozuluyormuş
- Buyrulur ki
" İnsanların ellerinin işledikleri günahlar sebebiyle,karada ve denizde fesat meydana çıktı ki(Allah)yaptıklarının bir kısmını kendilerine tattırsın, olur ki, belki geri dönerler. "
- üstelik ben geçenlerde Bir haber okudum Yemen de bir yanardağ faliyete geçmiş...
- eee
- Vakti zamanında kıyamet alametleri ile ilgili bir yazı okumuştum. orda ki alametlerden biride "Yemenden çıkacak ateş" diye hatırlıyorum neler oluyor hocam Kıyamet kopuyorda habrimiz mi yok ?
- Hoca Nasrettine Sormuşlar Kıyamet Nezaman kopar diye ?
- Ne demiş peki
- Nasrettin hoca şöyle cevaplandırmış "Bizim hanım öldüğünde küçük ben öldüğümde büyük
kıyamet kopar "
- yani ?
- Kişinin sevdiğinin ölümü o kişi için küçük bir kıyamet koparır. Kişinin ölmesiyle o kişi için kıyamet kopmuştur artık.
- Eline bir kitap alır ve okumaya başlar -
Ey gafil Nefsim! Bil ki, galat-ı his nev'inden, gayet muvakkat dünyayı lâyemut ve daimî görüyorsun. Etrafına ve dünyaya baktığın zaman bir derece sabit ve müstemir gördüğünden, fâni nefsini de o nazarla sabit telâkki ettiğinden, yalnız kıyametin kopacağından dehşet alıyorsun. Güya kıyametin kopmasına kadar yaşayacaksın gibi, yalnız ondan korkuyorsun. Aklını başına al. Sen ve hususî dünyan, daimî zeval ve fenâ darbesine mâruzsunuz. Senin bu galat-ı hissin ve mağlâtan şu misale benzer ki: Bir adam, elinde olan aynasını bir hane veya bir şehre veya bir bahçeye karşı tutsa, misalî bir hane, bir şehir, bir bahçe, o aynada görünür. Ednâ bir hareket ve küçük bir tagayyür aynanın başına gelse, o misalî hane ve şehir ve bahçede hercümerc ve karışıklık düşer. Hariçteki hakikî hane, şehir ve bahçenin devam ve bekası sana fayda vermez. Çünkü, senin elindeki aynadaki hane ve sana ait şehir ve bahçe, yalnız aynanın verdiği mikyas ve mizanladır.

Senin hayatın ve ömrün aynadır. Senin dünyanın direği ve aynası ve merkezi, senin ömrün ve hayatındır. Her dakikada o hane ve şehir ve bahçenin ölmesi mümkün ve harap olması muhtemel olduğundan, her dakika senin başına yıkılacak ve senin kıyametin kopacak bir vaziyettedir. Madem öyledir, sen bu hayatına ve dünyana, çekemedikleri ve kaldıramadıkları yükleri yükletme.
- Anladım kendi kıyametimiz için hazırlanmalıyız Kainatın ki için yapacağımız bir şey yok mu ?
- İyi bakarsan görebilirsin
- mesela
- mesela Kuranı Kerimde
"Yeyin - için ama israf etmeyin.Çünkü Allah israf edenleri sevmez."
buyruluyor
mesela Efendimiz
“Her kim boş, kuru ve çorak bir araziyi ihya ederse bu amelinden dolayı Allah tarafından mükâfatlandırılır. Herhangi bir canlı ondan faydalandıkça orayı ihya edene sadaka yazılır.”
mesela
...
...
...

mesela

“Kıyamet kopmaya yakınken elinizde bir ağaç fidanı varsa ve onu dikmeye vakit bulabilirseniz onu dikin”
- Anladım hocam
- İnşallah ?
- peki bir sorum daha var Kıyamet ne zaman kopacak ?
- La yağlemül gaybe illallah
...

Cumartesi, Eylül 29, 2007

OpenCv'ye Giriş 2

İlk yazımızın sonunda bir örnek vermiştik şimdi örneği biraz açıklayalım
Görüntü yükleye bilmek için cvLoadImage fonksiyonunu kullanıyoruz kullanımı gayet basit
IplImage* cvLoadImage( const char* filename, int iscolor=1 )

filename : Görüntü dosyasının ismi
iscolor : 1 ise her piksel 3 bytelık renk değeri içerir RGB yalnız dikkat OpenCv de renk sırası RGB ( Kırmızı-Yeşil-Mavi ) değil BGR ( Mavi-Yeşil-Kırmızı ) dır.
0 ise her piksel 1 bytelık renk -gri ton - degeri içerir
-1 ise okunan görüntü dosyası nasılsa öyle okunur...

bu fonkisyon Görüntü dosyasını hafızaya istendiği gibi IplImage yapısında yükler ve işaretçisini size döndürür. Bu görüntü ile işlem yapmak için bu işaretçiyi kullanılır.

IplImage yapısı şu şekilde tanımlanmıştır

typedef struct _IplImage
{
int nSize;
/* sizeof(IplImage) */
int ID;
/* version (=0)*/
int nChannels;
/* Most of OpenCV functions support 1,2,3 or 4 channels */
int alphaChannel;
/* ignored by OpenCV */
int depth;
/* pixel depth in bits: IPL_DEPTH_8U, IPL_DEPTH_8S, IPL_DEPTH_16U,
IPL_DEPTH_16S, IPL_DEPTH_32S, IPL_DEPTH_32F and
IPL_DEPTH_64F are supported */
char colorModel[4];
/* ignored by OpenCV */
char channelSeq[4];
/* ditto */
int dataOrder;
/* 0 - interleaved color channels, 1 - separate color channels.
cvCreateImage can only create interleaved images */
int origin;
/* 0 - top-left origin,
1 - bottom-left origin (Windows bitmaps style) */
int align;
/* Alignment of image rows (4 or 8).
OpenCV ignores it and uses widthStep instead */
int width;
/* image width in pixels */
int height;
/* image height in pixels */
struct _IplROI *roi;
/* image ROI. when it is not NULL, this specifies image region to process */
struct _IplImage *maskROI;
/* must be NULL in OpenCV */
void *imageId;
/* ditto */
struct _IplTileInfo *tileInfo;
/* ditto */
int imageSize;
/* image data size in bytes
(=image->height*image->widthStep
in case of interleaved data)*/
char *imageData;
/* pointer to aligned image data */
int widthStep;
/* size of aligned image row in bytes */
int BorderMode[4];
/* border completion mode, ignored by OpenCV */
int BorderConst[4];
/* ditto */
char *imageDataOrigin;
/* pointer to a very origin of image data
(not necessarily aligned) -
it is needed for correct image deallocation */
}
IplImage;

şimdilik IplImage'ın her şeyi neymiş diye uğraşmayın kullandıkça öğrenirsiniz.
Görüntüleri saklamak için kullanılan pek çok dosya formatı var. Bunlardan Bu fonksiyonla kullanabilecekleriniz

* Windows bitmaps - BMP, DIB;
* JPEG files - JPEG, JPG, JPE;
* Portable Network Graphics - PNG;
* Portable image format - PBM, PGM, PPM;
* Sun rasters - SR, RAS;
* TIFF files - TIFF, TIF.

Görüntüyle işimiz bittiğinde Hafızadan ayırdığımız yerleri boşaltmamız lazım bu iş için cvReleaseImage fonksiyonunu kullanıyoruz kullanımı gayet basit
void cvReleaseImage( IplImage** image );

dikkat edilmesi gereken bir nokta var elimizde işaretçinin de işaretçisini kullanıyoruz yani örnekteki gibi
cvReleaseImage( &grnt );
Evet Artık Görüntüyü yükledik artık sıra geldi ekranda göstermeye. Bu işi iki adımda yapıyoruz.
önce cvNamedWindow fonsiyonuyla bir pencere açıyoruz ve cvShowImage fonksiyonuyla pencerede görüntüyü gösteriyoruz.

Kullanımlarına gelince
int cvNamedWindow( const char* name, int flags );
name : Pencereye vereceğimiz isim daha sonra bu isimle ulaşılacağından aynı isimli iki pencere olmaz
flags : 1 ise Görüntü gerçek boyutlarında gösterilir
0 ise Görüntü pencere boyutlarında gösterilir

void cvShowImage( const char* name, const CvArr* image );
name : Görüntünün gösterileceği pencerenin ismi
image : Görüntünün işaretçisi

Pencereyle işimiz bittiğinde kapatmak için cvDestroyWindow fonksiyonu kullanılır.
void cvDestroyWindow( const char* name );
name : Kaptılacak pencerenin ismi

Şimdi örnekteki son OpenCv komutuna gelelim cvWaitKey fonksiyonu bir tuşa basıncaya kadar
ve belirtilen bekleme süresi doluncaya kadar program beklemede kalır
int cvWaitKey( int delay=0 );
delay : mili saniye biriminden bekleme süresi

İkinci yazımızın sonuna geldik. Görüş ve istekleriniz olursa bize bildirin dikkate almaya çalışırız. Eksik ve hatalarımız varsa bildirin memnun oluruz.





Cuma, Eylül 28, 2007

OpenCv'ye Giriş 1

Öncelikle OpenCv yi indirip bilgisayarınıza kurun
Windows için bir kurum programıya indirebiliyorsunuz
OpenCv_1.0.exe

OpenCv kütüphanesi normal olarak C: de Program Files kısmına kuruyor kendini

CodeBlocks'u çalıştırın
Create New Project -> Console Applicationı seçin


Projenize bir isim verip devam edin dil seçiminde ben C++ seçiyorum C de kullanabilirsiniz


Evet Artık projemiz oluştu şimdi OpenCv kütüp hanesi için gerekli ayarlamaları yapalım.
Aslında bütün kullanacağınız kütüphaneler için bu yaraların yapılması lazım
Öncelikle Derleyiciye başlık -header - dsyalarını nerede bulacağını gösteriyoruz
Project->Build Options->Search directories -> Compiler
gerekli dizinler gösteriliyor


Ardından Bağlayıcıya -Linker - kütüphaneyi - dosyalarını nerede bulacağını gösteriyoruz
Project->Build Options->Search directories -> Linker
gerekli dizini gösteriyoruz



Project->Build Options->Linker Settings den OpenCv de çoğu işimizi göremize yetecek kütüphane dosyalarını ekliyoruz



Hepsi bu kadar Artık Aşağıdaki Kodu yazın ve derleyip çalıştırın


// OpenCV nin ana fonksiyonlarının tanımlandığı başlık dosyası
#include "cv.h"
// OpenCV nin Kullanıcı ara birimi ile ilgili fonksiyonlarının tanımlandığı başlık
// dosyası
#include "highgui.h"
#include

int main()
{
char Buf[512];
IplImage* grnt;
/* Desteklenen Görüntü formatları
* Windows bitmaps - BMP, DIB;
* JPEG files - JPEG, JPG, JPE;
* Portable Network Graphics - PNG;
* Portable image format - PBM, PGM, PPM;
* Sun rasters - SR, RAS;
* TIFF files - TIFF, TIF.
*/
puts("Goruntu Dosyasini secin :");
gets(Buf);
grnt = cvLoadImage(Buf,1);
if(grnt){
//Yeni Pencere Oluştur
cvNamedWindow("Görüntü", 0);
//Görüntüyü Pencerede Göster
cvShowImage("Görüntü", grnt);
//Bir Tuşa basılmasını Bekle
cvWaitKey(0);
cvDestroyWindow( "Görüntü" ); // Pencereyi Yok et
cvReleaseImage( &grnt ); // Görüntüyü yüklediğimiz alanı serbest bırak
return 0;
}
else{
puts("Goruntu Dosyasini acamiyorum !!! :( ");
cvWaitKey(0);
return -1;
}
}







Delimiyim Ne !

- Bilmem kaçına gelmiş evli barklı işli güçlü hatta işi başından aşkını, oturmuş programlamayla üstelik üzerine bir de yapay zeka ile ilgileniyor. İlgilenmenin yanında oturup örnek programlar hazırlıyor, yazılar yazıyor... Delimidir ne !

- Sen Ne anlarsın bu işlerden hem sana ne bu konularda bilgili pek çok insan var. Eğer lüzüm varsa onlar yazar sana da ne oluyor... Delimisin ne ?

- Zaten çok sınırlı olan boş vakitlerimde böyle şeylerle uğraşmam doğru mu ? Acaba Kıymettar sermaye-i ömrümü bad-ı heva boşamı sarfediyorum ?
Delimiyim Ne ?

Gündüzü beklenen gecelerde
Bir hilal olduk
Doğunca gün
Batalım diye*

Gündüzü beklenen gecelerdeyiz. herkes gibi, herkes kadar gündüzü bekliyoruz.
Hilallerin kimi küskün saklanıyor vermiyor aydınlığını kimi bencil kendine saklıyor...
Hilal olabilmek ne haddimize...
bir yıldız böceğinin ne kadarcık aydınlığı olabilir işte o kadar...
ama kimbilir belkide bu, kimi Hilallerin küskünlüğünü, kimilerinin bencilliğini kaldırır...

Sermayeyi ömrün boşa geçmesi meselesine gelirsek
Efendimiz
“Hayrun Nas Men Yenfeûn Nas” (İnsanların Hayırlısı, İnsanlara Faydalı Olandır)
demiyor mu ?
bu fayda herkesin istidadına göre değil mi ? hem değil mi ki Zindan-ı Atalet** -tembllik zindanı- için deyiz her çalışma bu zindanı biraz da olsa açmıyor mu ?


* Bir şiir olarak aklımda kalmış fakat kimin bilemiyorum
** Münazarattan " Zindan-ı atâlete düştüğümüzün sebebi nedir?" sorusunun cevabına bakınız

Cuma, Eylül 21, 2007

Ramazan 3

Ramazan oruç ayı, Kur'an ayı.
Gündüzleri sıyâm, geceleri kıyâm.
Oruç, açlık için değil, yakınlaşmak için.
Namaz, yorulmak için değil, yakınlaşmak için.
Kur'an, okumuş olmak için değil, yakınlaşmak için.
Sadaka, harcamış olmak için değil, yakınlaşmak için.

Ramazan'ın önce Kur'an, sonra oruç ayı olduğunu bildiren,
bu mubârek ayı aydınlatan muhteşem ayete bakalım:

2:185 şehru ramadân
Ramazan ayı
ellezî unzile fîhil-qur°ân
ki onda Kur'an indirildi
huden linnâsi vebeyyinâtin
insanlara rehber ve apaçık belgeler olarak
minel-hudâ vel-furqân
yol gösterici ve ayırd edici
femen şehide minkumuş-şehra felyesumh
sizden bu aya erişen, onda oruç tutsun
vemen kâne marîdan ev 'alâ seferin
hasta veya yolculukta olan
fe'iddetun min eyyâmin uhar
(tutamadığı günlerin) sayısınca başka günlerde
yurîdullâhu bikumul-yusra
Allah sizin için kolaylık ister
velâ yurîdu bikumul-'usr
sizin için zorluk istemez
velitukmilul-'iddete velitukebbirullâhe
sayıyı tamamlamanızı ve Allah'ı yüceltmenizi ister
'alâ mâ hedâkum vele'allekum teşkurûn
size yol gösterdiğine karşılık; ola ki şükredersiniz.


Ramazan 1 : Ramazan güzeldir
Ramazan 2 : Ramazan-ı Şerife dairdir

Pazartesi, Eylül 10, 2007

cvBlobsLib , Etiketleme ve Fl_OpenCv 0.5



cvBlobsLib yine OpenCv ile yazılmış Etiketleme için kullanabileceğiniz bir kütüphane uzun uzadıya açıklama yazacak durumda değilim. Detaylı bilgi için linklere bakın olmadı sorunuzu
iletin bildiğimiz kadarıyla cevap vermeye çalışırız...

cvBlobsLib kütüphanesinin CodeBlocks için proje dosyasını oluşturup derledim kullanıma hazır
Buyrun cvBlobsLib.zip

cvBlobsLib kullanımını gösteren örnek program Blobs.zip
içinde Fl_OpenCv'nin 0.5 versiyonu var artık video dosyalarınızı da FLTK pencerelerinde gösterebileceksiniz. Örneğini daha sonra ekleyeceğim

Salı, Eylül 04, 2007

Mutluluk yarışı !

Gecenin üçüdür en uygun zaman, bahse girerim
düşünün: sabah çok yakın
oysa ışıltı yok ortalıkta
nerdeyse gece bitmiş
ama sürmekte karanlık

henüz uyanmış bazıları
henüz uyumamış bazıları
bazıları uyanmış uykusuna doymadan
bazıları uykusuna varmadan doymuş
...

En mutlu insanlar belki de
baca temizleyicileridir
öyle dar, öyle karanlık bir yerdedirler ki
yüreklerini geniş, dayanıklı
aydınlık tutmak zorundadırlar
buna yükümlü sayarlar kendilerini.
Baca temizleyicileri başkalarını sevmekle kalmaz
başkalarınca sevilirler aynı zamanda
çünkü herkesi düşünmeyecek kadar mutlu
herkes tarafından düşünülmeyecek kadar mutludurlar.
İsmet Özel- AKLA KARŞI TEZLER

Dökümcülerde baca temizleyicilerinden geri kalmazlar...

Pazartesi, Ağustos 27, 2007

Dua, dua, eller karıncalanmış...


Dua, dua, eller karıncalanmış;
Yıldızlar avuçta, gök parçalanmış.
Gözyaşı bir tarla, hep yoncalanmış...
Bir soluk, bir tütsü, bir uçan buğu;
İplik ki, incecik, örer boşluğu


“Rabbena zalemna enfusena Ve in lem tağfirlena ve terhemna lenekunenne minel hasirin.”
“Ey Rabbimiz! Biz nefsimize zulmettik. Eğer bizi bağışlamaz ve merhamet etmezsen, elbette büyük ziyana uğrayanlardan olacağız.”(Araf-23)

“Rabbic’alni mukimessalati ve min zürriyeti. Rabbena ve tekabbel dua. Rabbenağfirli veli valideyye velil muminine yevme yekumul hisab”
Rabbim beni namazı dosdoğru, mükemmel şekilde kılan bir insan yap. Zürriyetimden de böyle insanlar yarat. Ey Rabbimiz! Dualarımızı kabul et. Rabbimiz, Kıyametin kopacağı günde, beni ana ve babamı ve müminleri bağışla.-İbrahim–40–41

"Rabbişrahli sadri ve yessirli emri. Vahlul ukdeten min lisani yefkahu kavli”
Ey rabbim. Göğsümü aç, genişlet. İşimi kolaylaştır. Dilimde bulunan düğümü çöz de, anlasınlar beni(Taha:25-28)


Rabbi inni zalemtü nefsi fağfirli”
Ey Rabbim, ben nefsime zulmettim. Beni bağışla.”(Kasas-16)



"Rabbi hebli min ledünke zurriyetten tayyibeten.İnneke semiüddua”
Rabbim bana kendi katından tertemiz ve mübarek bir zürriyet ihsan et. Şüphe yok ki, sen duaları işitensin.(Âl-i İmran-38)

"Rabbena efriğ aleyna sabren ve sebbit akdemena vensurna alel kavmil kâfirin."
Ey Rabbimiz üzerimize sabır yağdır. Ayaklarımızı sabit kıl. Kafirlerden meydana gelen topluluğa karşı bize yardım et.(Bakara-250)

"Rabbena la tuziğ kulubena bade iz hedeytena ve heblena min ledünke rahmeh.İnneke entel vehhab.”
Rabbimiz hidayete erdikten sonra kalplerimizi batıla meylettirme. Şüphesiz sen ziyadesiyle bağışlayansın.”(Âl-i İmran–8,9)

"Ey Rabbimiz, bize dünyâda da iyilik, güzellik ver, âhirette de iyilik, güzellik ver. Bizi ateş azâbından koru,"
Ey Rabbim! Gizlide ve açıkda senden haşyetini istiyorum. Rızâ hâlinde de, gadab hâlinde de ihlâs sözünden ayırmamanı istiyorum, fakirlikte de zenginlikte de i'tidâlden ayırmamanı istiyorum. Senden tükenmez bir ni'met, kesilmez bir göz ferahlığı (yüzde açıkça görülen neş'e ve huzûr) istiyorum. Senden beni kazâna râzı kılmanı, ölümden sonra yaşamanın serinliğini istiyorum. Senden yüzüne bakmanın lezzetini; sana kavuşmanın şevkini istiyorum. Bütün bunları zarar vericinin zararından, sapdırıcı bir fitneden uzak olarak vermeni istiyorum. Ey Rabbim! Bizi îmân zîynetiyle süsle, bizi doğru yolda olan hidâyet rehberleri kıl.
"Ey kalbleri çekip çeviren Rabbim! Kalbimi dînin üzere sâbit kıl."
Ey kudret ve Hâkimiyet ve Mâlikiyeti bütün zâhirî seyyid ve meliklerin hadsiz derecede fevkinde bulunan, şeref-i intisâbı hiçbir seyyidin intisâbına benzemeyen ve Ona mensup olana kudretiyle herşeyi musahhar eden Hâkim-i Ezelî,
Ey lisân-ı hal ve kal ile edilen bütün dualara nihayetsiz rahmet ve kudretiyle ve nihayetsiz hikmetinin muktezâsınca icâbet eden Mücîb-i Rahîm,
Ey bütün hayır ve hasenât Onun elinde bulunan ve Onun tevfikiyle vücuda gelen, her hayrâtı yazan, her hasenâtı kaydeden, her a''mâl-i sâlihayı muhâfaza eden ve her hizmetin ücretini ve her hasenâtın mükâfâtını veren Hafîz-i Alîm,

Ey kemâlât-ı kibriyâsı mümkün ve mutasavver bütün mertebelerin üzerinde bulunan ve mahlûkatı mektûbat-ı Samedâniye ve memurîn-i İlâhiye mertebelerine çıkaran ve îman ve itaatle Ona intisab edenleri a''lâ-yı illiyîne yükseltip fazl ve keremiyle ulvî derecelere mazhar eden Fâtır-ı Hakîm,


Ey maddî ve mânevî nimetlere, rızıklara, ömürlere, hayır ve hasenelere bereket ihsân eden, nihayetsiz rahmet ve gınâ ve cûd ve sehâsıyla ziyadelikler veren Muhsin-i Kerîm,

Ey âsî kullarının hatalarını mağfiret etmek şanından olan Gafûr-u Rahîm,

Ey havl ve kuvvetiyle bütün belaları def eden Mevlâ-yı Azîm,

Ey büyük küçük bütün mevcudatın gizli ve açık bütün seslerini birden işiten ve hiçbir sadâ Ondan gizli kalmayan Semî-i Alîm,

Ey bütün mahlukatın sual ve dua lisanıyla ettikleri fakr ve ihtiyâcâtına dâimî cevap veren ve yerine getiren Kerîm-i Pürnevâl,

Ey en gizli mahlukatının en gizli arzularını ve en hafî niyazlarını bilen, işiten ve icâbet eden Alîm-i Zülcemal,

Sen aczden ve şerikten münezzeh ve mukaddessin. Senden başka ilâh yok ki bize imdad etsin. El-aman, el-aman! Bizi azap ateşinden ve Cehennemden halâs et.

Berat Kandilinizin Mübarek olmasını diler dualarınızı bekleriz

Salı, Ağustos 21, 2007

Fl_OpenCV 0.3 çıktı !



Fl_OpenCv : OpenCv görüntülerini FLTK penceresinde gösteren bir bileşen, eksiklikleri olmasına rağmen kullanılabilir durumda. Artık 8 bit gri görüntüleri de gösterebiliyorsunuz. Kullanımı için örnek programa bakabilirsiniz

Örnek program OpenCv nin Threshold fonksiyonunu kullanıyoruz
void cvThreshold( const CvArr* src, CvArr* dst, double threshold,
double max_value, int threshold_type );
Bu fonksiyonun bütün parametreleri ile oynayıp sonuçta ortaya çıkan yeni görüntüyü kaydede biliyorsunuz. Threshold tipi ve diğer ayrıntılar için OpenCv dökümantasyonuna bakınız
indirmek için buyrun : Threshold

Cumartesi, Ağustos 11, 2007

Ben Gittim, Yıkıldı Mı Bu Blog ! ?

Ben Gittim, Yıkıldı Mı Bu Şehir?

son göç bu gidiyorum
mektuplarınız karşılıksız kalacak artık...
bu şehre sığmıyor düşlerim
alışınca suskunluğa
buluyor beni de yüreği kavruk şair duruluğu
kendime yaklaştıkça tek kalıyorum
tüm ziyaretçilerim kapıdan dönecek artık...


uzun, ince bir yol var
bende başlayıp bende biten
gencecik bir bahar özlemiyle
kuşlara özeniyorum...
bu ayrılışlar bekleme yorgunluğumdur benim
şimdi mavi bir ikindide unutmuşken
bu yaşanmışlığı
bilmesem ne olur öykülerin bitişini
kuşlara özeniyorum
tüneğimi terkediyorum...

akşam olur gibi çekiliyorum
anısı sıcak sokaklardan...
tükettim ilkyazdan aşırdığım sevinçleri de
yürüdükçe eskiyen bir ömrüm
bakıldıkça kırışan bir yüzüm var
yıpranmışlığımı örten ne kaldı ki burada?..

evinden ayrılan bir gelinin hüznü gibi
yine de dönüp arkanı gitmek
ve sebepsiz suçluluk duygusu yok mu?
bu biletin elimde titremesi
son bakışın ezikliği...
oysa geldiğim gün gibi bu şehir
hala hiçbir albümde hatıra fotoğrafım yok
su gibi gidiyordum
su gibi dönmeyecektim...

Pazartesi, Ağustos 06, 2007

Yüz Bulma - Yüz Tanıma


Bir hafta sonu - daha doğrusu pazar -projesiyle yine karşınızdayız :)
Yüz Tanıma bir hafta sonuna sığamayacağı için Opencv nin imkanlarıyla Yüz Bulma pogramı yapacağız. Resim içerisindeki Yüz tanıma yada bir Nesne tanıma için ilk adım o nesnenin yerini tespit etmektir. işin teknik detayı için buyrunuz size bir döküman OpenCV's Rapid Object Detection

İşin pratik kısmına bahsetmek gerekirse Daha önceden hazırlanmış bir xml dosyasında tutulan nesne dedektörleri kullanılarak nesnelerin konumları resim üzerinde tespit ediliyor. Yazdığımız program işte bu OpenCv ile birlikte verilen bu nesne dedektörlerini kullanıyor. Pek tabii ki GUI olarak FLTK ve IDE olarak C::B kullanıldı

Üstteki resimde gözleri Lena'ya aşina olanları üzmüş olabilir. Fakat idare edin artık bu da Lazkopatlar :)

Neyse gevezeliği bırakıp programın linkini verelim FaceFind

Peki yüz tanıma işini nasıl yapacağız diyorsanız buyrun bu konuda güzel bir site hazırlanmış.
Face Recognation Homepage

  • PCA Principal Component Analysis
  • ICA Independent Component Analysis
  • LDA Linear Discriminant Analysis
  • EP eigenspace-based adaptive approach
  • EBGM Elastic Bunch Graph Matching
  • Kernel Methods|
  • Trace Transform
  • AAM Active Appearance Model
  • 3-D Morphable Model
  • 3-D Face Recognition
  • Bayesian Framework
  • SVM Support Vector Machine
  • HMM Hidden Markov Models
  • Boosting & Ensemble
gibi yüz tanıma algoritmaları hakkında pek çok dökümana ulaşabilirsiniz

Pazartesi, Temmuz 30, 2007

KGDD lerde Nodul sayısı tespiti


Eveet yeni bir Yapay zeka projesiyle karşınızdayız...
KGDD de ne demek derseniz kısa bir malzeme dersi yapalım :
KGDD Kürsel Grafitli Dökme Demirin kısaltmasıdır. Ductile cast iron yada nodular cast iron diye bilinir yabancı alemlerde. Her Malzeme için olduğu gibi KGDD içinde mikro yapı çok önemlidir. Mikro yapı tespiti için metallografik numunesi hazırlanır ve mikroskop altında incelenir. KGDD nin tespit edilmesi gereken mikro yapı parametrelerinden birde Nodül sayısıdır. Mikroskopla elde edilen görüntüyü standart görüntülerle karşılaştırarak Nodül sayısı tespit edilir. Yada el alemin yaptığı paket programlar kullanılır. Her ne ise işin detayını malzeme derslerine bırakıp basit bir nodül sayısı tespit programı yazıyoruz.

Görüntü işleme için OpenCv, kullanıcı arabirimi için FLTK ve YSA için fann kütüphaneleri kullanıldı. Ne elimde detaylı örnek resimler vardı nede benim detaylı bir proje için vaktim vardı. Malzeme ve Metalografi ile uğraşanaların programa bu nazarla bakmalarını rica ederiz. Standart resimlerin değişik kısımlarından aldığım 480x480 lik resimleri kullandım. YSA nın eğitimi için kullandığım resimler Trainin dizininde Test için kullanabileceğiniz resimler Test dizininde. Resim dosyalarının isimleri aynı zamanda Nodül sayısını da içeriyor. Yapılan işlemlerin safhalarını Bakan Bilgisayar - Gören Bilgisayar yazımızda görebilirsiniz.
Program kod olarak platform bağımsız. fakat linux versiyonunu bu aralar yayınlamam mümkün değil henüz OpenCv'yi Linux üzerine kuramadım. Programı çalıştırmak için OpenCv yi kuramanız lazım yada en azından Dll lerini bulup programın yanına bulundurmanız lazım
İndirmek için burdan buyrunuz Nodul

Pek zannetmiyorum ama eğer soracaklarınız olursa biz buradayız biliğimiz kadarıyla yardımcı olmaya çalışırız...



Perşembe, Temmuz 19, 2007

İlim Çindede olsa IV

Epeydir bu serimize devam etmiyorduk
Buyrun Yapay Zeka ile ilgili tonla kitap neler yok ki

  • Algorithmic Learning Theory
  • An Introduction to Genetic Algorithms
  • Applications of Artificial Intelligence in Finance and Economics
  • Artificial Intelligence and Expert Systems for Engineers
  • Artificial Intelligence Applications and Innovations
  • Computer-Aided Intelligent Recognition Techniques and Applications
  • Developments in Speech Synthesis
  • Fundamentals of Speech Recognition
  • Fuzzy Models and Algorithms for Pattern Recognition and Image Processing
  • Genetic Programming
  • Introduction to Pattern Recognition : Statistical, Structural, Neural and Fuzzy Logic Approaches
  • Multiagent Systems: A Modern Approach to Distributed Artificial Intelligence

özellikle gerçek uygulamlardan bahseden
Computer-Aided Intelligent Recognition Techniques and Applications
kitabını tavsiye ederim inceleyin.

Cumartesi, Temmuz 14, 2007

Üç ayların gölgesi üstümüze düştü

Yavrusunu arayan bir anne, Efendimiz Aleyhisselâm'ın gözüne ilişir. Kadın, bulduğu her çocuğu bağrına basar, yavrusu olmadığını anlayınca, bir diğerine koşar. Nihayet kendi çocuğunu bulunca kalbine sokarcasına davranışlarda bulunur. Efendimiz Aleyhisselâm çevresindekilere:
"Şu kadını görüyor musunuz, ne dersiniz o çocuğunu ateşe atar mı?" buyurur.
"Hayır, yâ Resûlâllah." derler.
"Allah o kadından daha çok merhametlidir."
buyurur.
Merhametlilerin en merhametlisinin rahmet vesilerinden üç aylar giriyor. Hatırlatıyor, Efendimizin dilinden dua ediyor
Allâhümme bârik lenâ fî Recebe ve Şaban ve belliğnâ Ramazan
ve dualarınız bekliyoruz..