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