KİŞİSEL BLOG

CliCam

Yazılımcıların kullandığı araçların hemen hemen hepsinin hem komut satırı hem de grafik arayüzü bulunur. Peki neden kameralarımızın bir komut satırı arayüzü olmasın?Bu fikir aklıma ilk geldiğinde her ne kadar verimsiz bir uygulama olacaksa da merakımı cezbetmeyi başardı. Ve bu iş için biçilmiş kaftan olduğunu düşündüğüm opencv ile çalışmaya başladım.Öncelikle yapmamız gereken kütüphaneleri ve namespace'leri projemize dahil etmek:#include <opencv2/opencv.hpp>#include <iostream>#include <windows.h>Daha sonrasında main fonksiyonumuza geçiyoruz. İlk yapmamız gereken şey konsol içinde imleç kontrolü için Windows API ile haberleşmek:CONSOLE_CURSOR_INFO cursorInfo;GetConsoleCursorInfo(GetStdHandle(STD_OUTPUT_HANDLE), &cursorInfo);cursorInfo.bVisible = false;SetConsoleCursorInfo(GetStdHandle(STD_OUTPUT_HANDLE), &cursorInfo);Daha sonrasında opencv içinden kameramıza erişiyoruz:VideoCapture cap(0);if (!cap.isOpened()){cerr << "Kamera acilamadi!" << endl;getchar();}Kamera görüntüsünün işlenmesini kolaylaştırmak adına gri tonlara çekiyoruz ve alanı konsol ekranına sığacak şekilde boyutlandırıyoruz:cvtColor(frame, gray, COLOR_BGR2GRAY);resize(gray, gray, Size(80, 40), 0, 0, INTER_LINEAR);Artık görüntü işlemesine ve parlaklığa göre konsol ekranına ascii art basmaya geçebiliriz:for (int y = 0; y < frame.rows; y++){for (int x = 0; x < frame.cols; x++){int pixel = frame.at<uchar>(y, x);char asciiChar = ASCII_CHARS[pixel * ASCII_CHARS.length() / 256];cout << asciiChar;}cout << endl;}Son olarak kodumuzun genel yapısı şu şekilde:

20/8/2025