2009 July

Gama Doğrulaması (Gamma Correction)

Yazan : Şadi Evren ŞEKER Esas itibariyle sinyal işlemenin bir uygulaması olmasına karşılık, bilgisayar bilimlerinde resim işleme alanında kullanılan konulardan birisidir. Bir resmin amiyane tabirle aydınlığını belirlemeye yarayan çarpandır. Kelime bu çarpan için kullanılan grek alfabesindeki γ (gama) sembolünden gelmektedir. Literatürde gama kodlaması (gamma encoding) , gama eğrisi (gamma nonlinearity) gibi kavramlarla da ifade edilmektedir. [...]

Şadi Evren ŞEKER tarafından, 28/07/2009 tarihinde yazıldı. | Resim İşleme (Image Processing) | A yorum var

3 Boyutlu Şekil Dönüşümleri

Yazan : Şadi Evren ŞEKER Bilgisayar grafiklerinde bir şeklin dönüştürülmesi sırasında aşağıdaki 3 işlemden birisi yapılabilir: içerik 3 boyutlu uzayda şekil taşıma 3 boyutlu uzayda şekil döndürme Eksene paralel doğru etrafında şekil döndürme Eksene paralel olmayan doğru etrafında şekil döndürme 3 boyutlu şekil ölçekleme Taşıma (Translation) Döndürme (Rotation) Ölçekleme (Scaling) Yukarıdaki bu işlemlerin 2 boyutlu [...]

Csharp ile Resim İşleme

Yazan : Şadi Evren ŞEKER Temel olarak bir programlama dilinde resim işleme işlemleri için iki fonksiyon gerekir. Birinci resmi oluşturan imgecik (pixel) değerlerini okuyabilmek İkincisi ise resmin imgecik (pixel) değerlerini değiştirebilmek Yani aslında resim üzerinde yapılan herşey, resmi oluşturan imgecikler üzerinde yapılmaktadır. Bu yazıda CSharp programlama dili kullanılarak basit bir histogram çıkarma ve resme gama [...]

Matematiksel Tümevarımın ikinci Teoremi (Second principle of mathematical induction)

Yazan : Şadi Evren ŞEKER Temel olarak matematiksel tümevarımın kullandığı yaklaşıma benzer. Bir farkı ispatı bir seri veya seri üreten bir fonksiyon üzerinden değil de ayrı ayrı örnekler üzerine bina etmesidir.  Yani matematiksel tümevarım yönteminde aşağıdaki şekilde bir yazım mümkündür: Burada dikkat edilirse sayıların belirli bir üretici fonksiyondan çıkması ve sonucun bir fonksiyonda toparlanabilmesi hedeflenir. [...]

Şadi Evren ŞEKER tarafından, 21/07/2009 tarihinde yazıldı. | bilgisayar felsefesi, Bilgisayar Matematiği | A yorum var

Matematiksel Tümevarım Teoremi (Mathematical Induction Principle)

Yazan : Şadi Evren ŞEKER Bilgisayar bilimlerinin de için de bulunduğu pek çok mühendislik ve bilim disiplinlerinin kullandığı ispat yöntemlerindendir. Temel olarak mantıktaki istikra (tümevarım) yaklaşımından faydalanır. Basitçe bir eşitliği ispatlamak için, eşitliğin her iki tarafı da birer kere ilerlettirilir (bir sonraki terimler için hesaplanır) şayet bu durum eşitliği bozmuyorsa ve eşitlik bir seri (sequence) [...]

Toplamlar (Summations)

Yazan : Şadi Evren ŞEKER Bir serinin elemanlarının toplamını ifade etmek için kullanılan matematiksel işlemin ismidir. Basitçe bir seri ve bu serinin (sequence) bütün elemanlarının toplamını bulmak hedeflenir. Matematiksel olarak Σ sembolü ile gösterilir. Toplamlar yukarıdaki şekilde görüldüğü üzere sigma işaretinin altına başlangıç değeri, üstüne bitiş değeri ve yanına seriyi üreten fonksiyonun yazılması ile gösterilir.Yukarıdaki [...]

Şadi Evren ŞEKER tarafından, 20/07/2009 tarihinde yazıldı. | Bilgisayar Matematiği | A yorum var

Seriler (Sequences)

Yazan : Şadi Evren ŞEKER Seriler, kısaca aşağıdaki özellikleri taşıyan sayı kümesidir: Bir serinin başlangıç değeri bulunmalıdır Bir serideki sayılar arasında aritmetik bir bağlantı bulunmalıdır. Bir serinin bitiş değeri bulunmalıdır. Yukarıdaki üç şartı sağlayan sayı kümesine seri (sequence) ismi verilir. Yukarıdaki maddelerden üçüncüsü matematiksel olarak her zaman gerekmez. Örneğin sonsuza giden seriler olabilir ancak bilgisayar [...]

Şadi Evren ŞEKER tarafından, tarihinde yazıldı. | Bilgisayar Matematiği | A yorum var

Nokta Kesiciler (PointCuts)

Yazan : Şadi Evren ŞEKER Bağlam yönelimli programlama (Aspect oriented programming) konusunda kullanılan en önemli yapı taşlarındandır. Basitçe bir programın akışı içerisinde bağalam noktaları (joinpoints) belirlendikten sonra bu noktalara hangi bağlamların (Aspects) bağlanacağını belirleyen kümedir. Yani nesne yönelimli bir ortamda yazılan programımız üzerine örmek istediğimiz (aspect weaving) bağlamları (aspects) kod üzerindeki birleşim noktaları (joinpoints) ile [...]

Şadi Evren ŞEKER tarafından, 16/07/2009 tarihinde yazıldı. | Yazılım Mühendisliği (Software Engineering) | A yorum var

Birleşim Noktaları (JoinPoints)

Yazan : Şadi Evren ŞEKER Bağlam yönelimli (aspect oriented) programlamada kullanılan terimlerdendir. Anlam olarak programda bulunan bir kontrol noktasının bir veya daha fazla bağlamın etkisinde olduğu nokta demektir. Bu anlamda bir kodda bulunan bütün satırlar birleşim noktası (joinpoint) olabilir ancak bu yaklaşım bağlam yönelimli programlama açısından doğru olmaz. Daha doğrusu bütün olası birleşme noktalarından en [...]

Bağlam Örücüler (Apect Weavers)

Yazan : Şadi Evren ŞEKER Bilgisayar bilimlerinde yazılım geliştirme sürecinde kullanılan yaklaşımlardan birisi de bağlam yönelimli programlamadır (Aspect oriented programming). Bu yaklaşım, yazılım geliştirme yaklaşımları sıralasında nesne yönelimli programlamadan sonra gelmektedir. Yani bir anlamda her bağlam yönelimli programlama yaklaşımı aslında bir nesne yönelimli programlama yaklaşımını kapsar. Nesne yönelimli programlama yaklaşımından farklı olarak bağlam yönelimli programlama [...]

Veri Bütünlüğü (Data Integrity)

Yazan : Şadi Evren ŞEKER Bilgisayar bilimlerinin birinci derece uğraştığı varlık veridir. Yani bilgisayar bilimlerinde yapılan her işi bir bakışa göre veriyi işlemek olarak görmek mümkündür. İşlenen bu verinin bütünlüğü ise ayrı bir problemdir. Veri bütünlüğü ile genelde verinin birden fazla parçaya bölünmesi durumunda bu parçaların bütün olarak tutulması kastedilir. Veri’nin bölünmesi ne zaman gerekir [...]

Bağlam Yönelimli Programlama (Aspect Oriented Programming)

Yazan : Şadi Evren ŞEKER Yazılım mühendisliğinde kullanılan bir programlama yaklaşımıdır. AOP olarak kısaltılmış halde de geçer. Türkçe literatüründe bağlam / cephe / kesit / görünüm yönelimli programlama kelimelerinin hepsi farklı kaynaklarda kullanılmıştır. 1990′lı yılların ortalarında özellikle JAVA ve nesne yönelimli programlama ihe ivme kazanmış bir yaklaşımdır. Kısaca aop’yi tanımlamak gerekirse bir program geliştirilmesi sırasında [...]

Izgara Tarama (Raster Scan)

Yazan : Şadi Evren ŞEKER Bilgisayar grafiklerinde bir şeklin ekranda gösterilmesi sırasında kullanılan yöntemin ismidir. Basitçe ekranı imgecik (pixel) matrisinden oluşan bir ızgara gibi düşünebiliriz. Örneğin 1024 x 768 boyutlarındaki bir ekranın yine aynı boyutlardaki bir ızgara olarak düşünülmesi mümkündür. Izgara (raster) kullanılarak şekiller üzerindeki dönüşüm işlemleri yapılabilir. Örneğin şeklin taşınması işlemi için basit hafızada [...]

Şeklin Eğilmesi (Shearing)

Yazan : Şadi Evren ŞEKER Bilgisayar grafiklerinde bir şeklin herhangi bir eksende eğilmesine verilen işlemdir. Temel şekil değiştirme (Transformation) işlemlerinden birisidir. Aşağıdaki temsili şekilde gösterilmiştir: Yukarıdaki ilk şekilde olan kare, ikinci şekilde gösterildği üzere eğilmiştir. Eğme işlemini aşağıdaki dönüşüm matrisi (transformation matrix) ile yapabiliriz. Yukarıdaki bu dönüşüm matrisini (x,y) kartezyen koordinatlarına sahip temsili bir noktaya [...]

Kutupsal Koordinat Sistemi (Polar Coordinates)

Yazan : Şadi Evren ŞEKER Uzayda bir nokta, merkeze (ordinat) göre farklı şekillerde gösterilebilir. Örneğin kartezyen uzay (cartesian space) bu gösterimlerden birsidir. Kartezyen uzay gösterimine göre bir nokta örneğin 2 boyutlu uzayda x ve y eksenlerindeki merkeze uzaklık cinsinden gösterilebilir. Yukarıda, kartezyen uzaya göre x ve y eksenindeki değerler elde edilmiştir. Örneğin noktamız (2,1) koordinatlarına [...]

Şadi Evren ŞEKER tarafından, tarihinde yazıldı. | Bilgisayar Matematiği | A yorum var

Yansıma (Reflection)

Yazan : Şadi Evren ŞEKER Bilgisayar grafiklerinde, kartezyen uzayda (cartesian space) bulunan bir noktanın herhangi bir eksene veya doğruya göre yansımasını almak mümkündür. Örneğin aşağıdaki üçgeni ve x eksenine göre yansımasını ele alalım: Yukarıdaki üçgen aslında üçgeni oluşturan 3 noktanın teker teker yansımalarının alınması ve sonuçta elde edilen 3 ayrı yansımış noktanın yeniden üçgen oluşturması [...]

Ters Şekil Değiştirme Matrisleri

Yazan : Şadi Evren ŞEKER Bilgisayar grafiklerinde kullanılan ve bir şeklin değişmesine (transformation) yarayan matrisleri üç grupta toplayabiliriz: İçerik Taşıma işleminin geri alınması Döndürme işleminin geri alınması Ölçekleme işleminin geri alınması Örnek uygulama Taşıma (Translation) Döndürme (Rotation) Ölçekleme (Scaling) Bu üç gruptaki matrislerin aynı zamanda tersini almak da mümkündür. Yani herhangi bir değişim işlemine maruz [...]

Homojen Koordinatlarla Şekil Değiştirm

Yazan : Şadi Evren ŞEKER Bilgisayar grafiklerinde bir şeklin değşitirilmesi aşağıdaki işlemlere indirgenebilir: Taşıma (Translation) Döndürme (Rotation) Ölçekleme (Scaling) Bu işlemlerin hepsi kendisine özgü masfuf (Matris) işlemleri olarak görülebilir. Örneğin taşıma işlemi 2 boyutlu kartezyen uzaydan (cartesian space) bir noktanın verilen x ve y değişimi kadar taşınması demektir. Yukarıdaki şekilde verilen x,y değerlerine sahip nokta [...]

JAVA ile Veritabanı bağlantısı

Yazan : Şadi Evren ŞEKER Bu yazının amacı JAVA programlama dilinden bir veri tabanına nasıl bağlanılacağını adım adım örnek kod üzerinden açıklamaktır. Uygulamada veri tabanı olarak JavaDB kullanacağız. Bu veritabanı netbeans ile birlikte gelmenin yanında Sun microsystems’in web sitesinden de indirilebilir. Temel olarak bir programlama dilinden (JAVA veya farklı bir dil) bir veritabanına (database) bağlanmak [...]

Şadi Evren ŞEKER tarafından, tarihinde yazıldı. | JAVA, Veri Tabanı (Database) | 14 yorum var

CSharp ve SQL

Yazan : Şadi Evren ŞEKER Gelen bir soru üzerine C# ile MS SQL server’dan veri çekmeyi adım adım kod üzerinden inceleyelim. Öncelikle veri çekmek için gereken adımları sıralayalım: Veri tabanına C# dilinde kullanıcı ve şifre ile bir bağlantı oluşturulur. Açılan bağlantı üzerinde bir sorgu (Query) çalıştırılır. Sorgu (query) sonucu bir veri yapısında (data structures) saklanır. [...]

Şadi Evren ŞEKER tarafından, 08/07/2009 tarihinde yazıldı. | C/C++, Veri Tabanı (Database) | 2 yorum var

Özyineli Diller (Recursive Languages)

Yazan : Şadi Evren ŞEKER Özyineli diller matematik, mantık veya bilgisayar bilimlerinde geçen muntazam dillerden (formal language) birisidir. Genellikle kararverilebilir yani Turing makinesi (Turing machine) tarafından işlenebilir diller olarak kabul edilirler. Özyineli diller Chomsky hiyerarşisinde yer almamaktadır. Bir özyineli dili tanımlamak için iki önemli tanım yapılır. Birincisi dilin içerdiği alfabeden üretilebilen güç kümesinin (power set) [...]