C Fotoğraf Çekme Ve Kaydetme

C ile Fotoğraf Çekme ve Kaydetme

Giriş

Fotoğrafçılık, günümüz dijital dünyasında önemli bir rol oynamaktadır. C programlama dili, fotoğraf çekme ve kaydetme gibi görüntü işleme görevlerini gerçekleştirmek için güçlü bir araç sunar. Bu makale, C kullanarak nasıl fotoğraf çekileceğini ve kaydedileceğini adım adım açıklayacaktır.

Gerekli Kütüphaneler

Fotoğraf çekmek ve kaydetmek için aşağıdaki kütüphanelere ihtiyacınız olacaktır:

  • OpenCV (Open Source Computer Vision Library)
  • libjpeg

Adım 1: OpenCV’i Kurma

OpenCV’yi işletim sisteminize kurmak için aşağıdaki adımları izleyin:

  • OpenCV’nin resmi web sitesinden en son sürümü indirin: https://opencv.org/releases/
  • İndirilen dosyayı çıkarın ve kurulum talimatlarını izleyin.

Adım 2: libjpeg’i Kurma

libjpeg’i kurmak için aşağıdaki adımları izleyin:

  • libjpeg’in resmi web sitesinden en son sürümü indirin: https://www.ijg.org/files/
  • İndirilen dosyayı çıkarın ve kurulum talimatlarını izleyin.

Adım 3: C Kodunu Yazma

Aşağıdaki C kodunu kullanarak fotoğraf çekebilir ve kaydedebilirsiniz:

“`c

include

include

int main() {
// Kamerayı açın
cv::VideoCapture cap(0);

// Kameranın açık olup olmadığını kontrol edin
if (!cap.isOpened()) {
    std::cerr << "Kamera açılamadı!" << std::endl;
    return -1;
}

// Bir kare alın
cv::Mat frame;
cap >> frame;

// JPEG sıkıştırma kalitesini ayarlayın (0-100)
int quality = 95;

// JPEG dosyasını açın
FILE *fp = fopen("foto.jpg", "wb");

// JPEG sıkıştırma nesnesini oluşturun
jpeg_compress_struct cinfo;
jpeg_error_mgr jerr;

// Sıkıştırma nesnesini ayarlayın
jpeg_create_compress(&cinfo);
cinfo.err = jpeg_std_error(&jerr);
jpeg_stdio_dest(&cinfo, fp);

// Sıkıştırma parametrelerini ayarlayın
cinfo.image_width = frame.cols;
cinfo.image_height = frame.rows;
cinfo.input_components = 3;
cinfo.in_color_space = JCS_RGB;
jpeg_set_defaults(&cinfo);
jpeg_set_quality(&cinfo, quality, TRUE);

// Verileri sıkıştırın
jpeg_start_compress(&cinfo, TRUE);
for (int i = 0; i < frame.rows; i++) {
    jpeg_write_scanlines(&cinfo, &frame.data[i * frame.step], 1);
}
jpeg_finish_compress(&cinfo);

// JPEG dosyasını kapatın
fclose(fp);

// Kamerayı kapatın
cap.release();

return 0;

}
“`

Adım 4: Kodu Derleme ve Çalıştırma

Kodu derlemek ve çalıştırmak için aşağıdaki adımları izleyin:

  • Bir terminal veya komut satırı açın.
  • Kodu içeren dosyayı kaydedin (örneğin, foto.c).
  • Aşağıdaki komutu kullanarak kodu derleyin:

gcc foto.c -o foto -lopencv_core -lopencv_imgproc -lopencv_highgui -ljpeg

  • Derlenen kodu çalıştırmak için aşağıdaki komutu kullanın:

./foto

Faydalı Kaynaklar

  • OpenCV Resmi Web Sitesi: https://opencv.org/
  • libjpeg Resmi Web Sitesi: https://www.ijg.org/files/
  • C ile Görüntü İşleme: https://www.tutorialspoint.com/cprogramming/c_image_processing.htm
  • C ile Fotoğraf Çekme ve Kaydetme Örneği: https://www.codeproject.com/Articles/514222/Capture-and-Save-Image-using-OpenCV-and-Cplusplus

Sonuç

Bu makale, C kullanarak nasıl fotoğraf çekileceğini ve kaydedileceğini açıklamıştır. OpenCV ve libjpeg kütüphanelerini kullanarak, kullanıcılar dijital kameralardan fotoğraf çekebilir ve bunları JPEG formatında kaydedebilirler. Bu bilgiler, görüntü işleme, bilgisayarlı görü ve diğer ilgili alanlarda uygulamalar geliştirmek için kullanılabilir.


Yayımlandı

kategorisi