Sayfalar

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.

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...