Windows'da Ek Modüller ile OpenCV Derleme ve Yükleme

1 Kasım 2017

OpenCV (Open Source Computer Vision Library), bilgisayar görüşü ve görüntü işleme alanlarında kullanılan açık kaynaklı bir kütüphanedir.

Ön Koşullar
Başlamadan önce yüklü olduğundan emin olun:
  1. Microsoft Visual Studio 2015
  2. Windows için CMake (https://cmake.org/download/)

Genel Bakış
  1. Ek Modüller ile OpenCV İndirme
  2. CMake ile Visual Studio Projesi Oluşturma
  3. OpenCV Projesini Derleme
  4. OpenCV Kullanarak Uygulama Geliştirme

Tarihin İlk Kriptoloji Fikri: Sezar Şifrelemesi (Caesar Cipher)

29 Eylül 2017

Sezar Şifrelemesi, tarihteki ilk şifreleme algoritmalarından biridir. Bu algoritma ile bir mesajdaki her harf, alfadeki belirli bir sayı sonrasındaki başka bir harfle yer değiştirilerek kullanılır. Örneğin, 3 sola kaydırmalı Sezar Şifrelemesi'nde "D" yerine "A", "E" yerine "B" yazılarak şifrelenir. İsmini Roma İmparatoru Jül Sezar’dan almıştır. Jül Sezar bu algoritmayı özel yazışmalarında kullanıyordu.

Example:
Beş sağa kaydırmalı Sezar Şifrelemesi için Plain ve Cipher alfabeleri aşağıdaki gibidir.

NOT:
Kaydırma parametresi anahtar olarak kullanılır.

Plain: A B C D E F G H I J K L M N O P Q R S T U V W X Y Z
Cipher: F G H I J K L M N O P Q R S T U V W X Y Z A B C D E

C++ - Sezar Şifrelemesi Programı (Encryption & Decryption)

Encryption Programının Kodu

Tim Berners-Lee: "İnterneti Öylece Kullanamayız Aynı Zamanda Onun İçin Endişelenmemiz de Gerek"

17 Eylül 2017

Tim Berners-Lee 28 yıl önce CERN'de çalışıyordu. İlk yılını doldurduktan sonra başka bir yan projede çalışmaya başladı. Bir kod yazdı. Başta insanlar kullanmaz diye endişelenenler oldu, halka karmaşık geleceğini düşündüler. Bir sürü çaba, bir sürü insanla yaptığı işbirliği sonucunda kullanışlı hale geldi. Birkaç yıl sonra, 2000'lerde dünya nüfusunun %5'i WWW'i kullanır hale geldi. 2007'de bu rakam %17'ye yükseldi. 2008'de World Wide Web Vakfı'nı kurdu. 2014'te dünyanın %40'ı WWW kullanıcısı oldu ve giderek yaygınlaşıyor.

İnternet birçok yönde hayatımızı değiştirdi. Eğitim alanında birçok değişiklikler oldu. Başka alanlarda da öyle. Online ticaret, alışveriş anlayışımızı değiştirdi. Çeşitli ticaret türleri ortaya çıktı. Ticaretin kuralları neredeyse tüm dünyada değişti. Siyasi sistemler de etkilendi. Öyle ki, e-Devlet sistemleri birçok şeyin görünür ve şeffaf olmasını sağladı.

Surveillance İnternete girdiğimiz zaman Web'in hangi parçasını kullandığımızı hangi parçasının özgür ve şeffaf olduğunu bilemiyoruz. Endişe verici olan izlemeler (surveillance) değil esasen bundan çok internetteki verilerimizi suiistimal etmek isteyecek başka birilerinin olması. (Kişilere özgü reklam sunan Google, Yandex vb.)

Halk Dansları Eşliğinde Sıralama Algoritmaları

6 Eylül 2017

Romanya'da bulunan Sapientia Üniversitesi öğrencileri sıralama algoritmalarını (eklemeli, seçmeli, kabarcık, kabuk, birleştirmeli ve hızlı sıralama) Romen, Çingene ve Macar halk danslarıyla sentezledi. Organizasyona AlgoRythmics adı verildi.

Yönetmen: Kátai Zoltán ve Tóth László
Koreografi: Füzesi Albert


1. Eklemeli Sıralama (Insertion Sort)


C++ - Doğrusal Arama (Linear Search) Algoritmasi

26 Ağustos 2017

Doğrusal arama, bir dizide, belirli bir değerin olup olmadığını bulmak için kullanılan basit bir algoritmadır. Bu algoritma ile aranan değer, dizinin ilk elemanından başlanarak son elemanına doğru her değerle tek tek karşılaştırılır. Aranan değere eşit değer bulunursa o değerin indisi döndürülür. Eğer aranan değere eşit değer bulunmazsa eksi bir (-1) değeri döndürülür. Eksi bir değeri döndüğünde, aranan değer dizi içinde değildir.

Eleman sayısı az olan dizilerde doğrusal arama algoritması tercih edilebilir. Eleman sayısı fazla olan dizilerde ise ikili arama algoritması tercih edilmelidir.

NOT: Doğrusal arama algoritmasının karmaşıklığı O(n)'dir.

C++ - İkili Arama (Binary Search) Algoritması

23 Ağustos 2017

İkili arama, sıralı bir dizide, belirli bir değerin bulunmasına yönelik bir algoritmadır. Bu algoritmayla her bir adımda, aranan değerin, dizinin orta değerine eşit olup olmadığı kontrol edilir. Eşit olmaması durumunda aranan değerin dizinin orta değerinden küçük veya büyük mü olduğuna bakılır. Eğer küçükse dizinin orta değeri dahil büyük kısmı yok sayılır ve küçük kısım yeni diziymiş gibi kabul edilir. Eğer büyükse dizinin orta değeri dahil küçük kısmı yok sayılır ve büyük kısım yeni diziymiş gibi kabul edilir. Aranan değeri içeren kısım bir sonraki adımda arama yapılacak yeni dizi olur. Böylelikle arama yapılan dizideki eleman sayısı her adımda yarıya indirilmiş olur.

Örneğin;

int B[10]= {1, 2, 13, 14, 15, 16, 27, 38, 49, 70};

NOT: İndis değeri sıfırdan başlar.
  • Aranan değer nedir? 1
  • 9/2=4.5 orta değer 4. indis 15'dir.

C++ - Eklemeli Sıralama (Insertion Sort)

19 Ağustos 2017

Eklemeli sıralama, sıralama algoritmalarından biridir. Karmaşıklığı O(n²)'dir. Diğer sıralama algoritmalarına göre bazı avantajları aşağıda sıralanmıştır.
  • Kararlı bir sıralama algoritmasıdır.
  • Karmaşıklığı O(n²) olan seçmeli sıralama ve kabarcık sıralaması gibi sıralama algoritmalarından daha verimlidir.
  • Sıralanacak dizi için ek bir bellek alanı gerektirmez.