• Giriş

Gorsel Programlama

  • AnaSayfa
  • Hakkımızda
  • TOP-10 Proje
  • Download
  • Özel Ders
  • Reklam Verin
  • Destek
  • İletişim
RSS feed
  • Youdao
  • Xian Guo
  • Zhua Xia
  • Google
  • My Yahoo!
  • newsgator
  • Bloglines
  • iNezha
© 2009-2020 Gorsel Programlama

C# Kameradan Görüntü Alma

C# Kameradan Görüntü Alma

Daha fazla bilgi için : www.gorselprogramlama.com

İlk olarak AForge kütüphanesini buradan indiriyoruz. Daha sonra projemizin solution’una gelip sağ tıklıyoruz. “Add” diyip “Reference” diyip “AForge.Video.VFW.dll” ve “AForge.video.DirectShow.dll” referanslarını ekliyoruz. Ardından Form sınıfımızde en üst kısıma “using AForge.Video” , “using AForge.Video.DirectShow” yazıyoruz ve referans ekleme işlemimiz tamamlanmış oluyor.

AForge Özellikleri: AForge.NET kütüphanesi, Image Processing(Görüntü İşleme) dediğimiz aslında doğası gereği pixel işleme sanatının icra edildiği Open Source(Açık Kaynak) olan bir kütüphanedir.

Örnek: Butona tıklandığında kameranın görüntüsünü Form ekranına kaydedecek bir uygulama yapalım. Bunun için Form Application açalım. İçine iki adet pictureBox, bir adet comboBox ve bir adet button ekleyelim. Kafamız karışmaması için Form elemanlarımızın isimleri ise şu şekilde olsun:

picturebox1=pcBox_video,

pictureBox2=pcBox_photo,

combobox1=cmbxCam,

button1=btnPhotoRecord.

tasarim

Şimdi cmbxCam elemanımızın içini dolduralım. İlk olarak FilterInfoColletion sınıfından “devices” adlı bir nesne oluşturalım. Bu nesne yardımıyla bilgisayara video elemanlarını okuyalım ardından VideoCaptureDevice sınıfından “camera” bir nesne oluşturalım. okuduğumuz kameraları cmbxcam adlı elemanımızın içine katalım:

 




public FilterInfoCollection devices;
public VideoCaptureDevice camera;

private void Form1_Load(object sender, EventArgs e)

{
devices = new FilterInfoCollection(FilterCategory.VideoInputDevice);//devices nesnemize tüm video giriş elemanlarını attık.

foreach (FilterInfo item in devices)
{
cmbxCam.Items.Add(item.Name);//foreach döngüsü ile cmbxCam elemanımıza sırayla video giriş elemanlarını kaydedelim.

}

camera = new VideoCaptureDevice();//camera adlı Nesnemizi burada nitelemiş olduk.

}


 

cmbxCam adlı comboboxtaki seçili eleman değiştiği zaman kamera açılması için cmbxCam elemanımızın SelectedIndexChanged metodunu kullanalım:

 


private void cmbxCam_SelectedIndexChanged(object sender, EventArgs e)
{
try//Her ihtimale karşı hata fırlatalım

{

if (camera.IsRunning==false)//"Eğer seçilen Kamera çalışmıyorsa aşağıdaki işlemleri gerçekleştirsin" diyoruz

{

camera = new VideoCaptureDevice(devices[cmbxCam1.SelectedIndex].MonikerString);//Seçili Kameramıza isim lakap tanıttık. 

camera.NewFrame += Camera_NewFrame;//Kameramıza çerçeve tanıttık.İlk olarak hata verecektir. Otomatik düzenle kısmından yeni bir "Camera_NemFrame" adlı metot oluşturacağız

camera.Start();//Kameramızı başlattık

}

}

catch (Exception exc)//Eğer Hata alırsak aşağıdaki işlemleri gerçekleştirelim

{

MessageBox.Show(exc.Message + "");//Hata mesajını yayınladık.

}

}

Camera_NewFrame adlı metodumuzu tanımlayalım:

 


private void Camera_NewFrame(object sender, NewFrameEventArgs eventArgs) 

{ 

Bitmap image = (Bitmap)eventArgs.Frame.Clone();//Bitmap sınıfımızdan image adlı nesne oluşturup, o nesneye Kameramızdan aldığımız çerçeveyi aktırıyoruz.

pcBox_video.Image = image;//image nesnemizi pcBox_video adlı pictureBoxımıza aktarıyoruz. 

}

Combobox Elemanı Değiştiği Anda

Bu işlemlerden sonra btnPhotoRecord adlı butonumuzun Click olayını etkinleştirelim:

 


private void btnPhotoRecord_Click(object sender, EventArgs e) 
{ 


pcBox_photo.Image = pcBox_video.Image;//pcBox_video adlı pictureBoxımızdaki görüntüyü pcBox_photo adlı pictureBoxımıza atıyoruz ve Projemizi tamamlıyoruz. 

}


Butona Tıklandıktan Sonra

 

Projemizin çıkış yaparken kameramızı durdurmak için Form1’imizin Form_Closing özelliğini etkinleştirelim:

 

private void Form1_FormClosing(object sender, FormClosingEventArgs e)
{
camera.Stop();

}

Projemizin tüm kaynak kodları:

 

using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data; using System.Drawing;
using System.Linq; using System.Text;
using System.Threading.Tasks; using AForge.Video;
using AForge.Video.DirectShow; using System.Windows.Forms;
namespace kameradanGoruntuAlma { public partial class Form1 : Form 
{
public Form1() 
{ 
InitializeComponent(); 
} 
public FilterInfoCollection devices;
public VideoCaptureDevice camera;
private void Form1_Load(object sender, EventArgs e)
{
devices = new FilterInfoCollection(FilterCategory.VideoInputDevice);
foreach (FilterInfo item in devices)
{
comboBox1.Items.Add(item.Name);
}
camera = new VideoCaptureDevice();
}
private void button1_Click(object sender, EventArgs e)
{
pcBox_photo.Image = pcBox_video.Image;
}
private void comboBox1_SelectedIndexChanged(object sender, EventArgs e)
{
try 
{
if (camera.IsRunning==false)
{
camera = new VideoCaptureDevice(devices[comboBox1.SelectedIndex].MonikerString);
camera.NewFrame += Camera_NewFrame; camera.Start();
}
}
catch (Exception exc)

{

MessageBox.Show(exc.Message + "");
}
}
private void Camera_NewFrame(object sender, NewFrameEventArgs eventArgs)

{
Bitmap image = (Bitmap)eventArgs.Frame.Clone();
pcBox_video.Image = image;
} 
private void Form1_FormClosing(object sender, FormClosingEventArgs e)
{
camera.Stop();
}
}
}//Daha fazlası için www.gorselprogramlama.com;

Projeyi İndirmek İçin Tıklayınız

Paylaş :
Tweet
Yorum Yazın | Geri
19 Şubat Salı,2019 Tarihinde Yayınlanmıştır. Bulunduğu Kategori : C#, Dersler, Görsel Programlama
Etiket: C# Kameradan Görüntü Alma, c# örnekleri, csharp örnekleri
« 2018-2019 Eğitim Öğretim Yılı Web Tasarımı ve Programlama Dersi 1.Dönem 3.Uygulama Sınavı (Dreamweaver) Soruları ve Cevap Anahtarı C# Dinamik Butonlarda Events Kullanımı ve Sürüklenebilir Buton »
  1. murat
    Cevap | Gönder
    Kas 11th, 2019 at 12:45 | #1

    slm paylasım için tşkler // güzel çalışma olmuş //
    sizden bir ricam var buna bir buton daha eklesek kayıt yapması için ama kodu
    paylasa bilirmisin rica etsem//

Yorum Yazın ...

Cevabı İptal
XHTML: Bu Etiketleri Kullanabilirsiniz : <a href="" title=""> <abbr title=""> <acronym title=""> <b> <blockquote cite=""> <cite> <code> <del datetime=""> <em> <i> <q cite=""> <s> <strike> <strong>
RSS Bu Yazıya Yapılan Yorumlar


Site içi Arama

Takip et: @GorselProgram







Böyle bir web sayfam olsun diyorsanız iletişim bölümünden veya gorselprogram@gmail.com mail adresinden bize ulaşabilirsiniz.

Son Yazılar

  • C# Console Application İçi Boş Üçgen
  • C# WindowsForm Çekiliş Uygulaması
  • C# WindowsForm Login Remember Me (Remember me Checkbox)
  • Migros market 2 Reklam Banner Örneği — Flash
  • C# WindowsForm ile TC Kimlik Numarası, İsim, Soyisim, E-Mail Kontrol Yapıları

Etiket Bulutu

.NET Application basit C# C#.NET application C#.NET codes C#.NET examples C#.NET lessons C#.NET practice C#.net örnekleri c# console dersleri c# console örnekleri C# ders c# dersleri c# örnek c# örnekleri C.net dersleri c dersleri code console console örnekleri Csharp csharp dersleri csharp net csharp örnekleri c örnekleri download Flash örnekleri forms Forms örnekleri full indir kod kodlar nesne tabanlı programlama OleDbConnection OleDbDataAdapter tam sürüm uygulama vb net win windows windows forms application örnek ücretsiz

Kategoriler

  • Access (59)
  • Akış Diyagramı Flowchart (69)
  • Android Eğitimleri (2)
  • Asp Net (47)
  • C# (830)
  • C# Console (222)
  • Css (19)
  • Dersler (191)
  • Dökümanlar (21)
  • Dreamweaver (12)
  • Excel (8)
  • Fireworks (27)
  • Flash (76)
  • Görsel Programlama (419)
  • GorselProgramlama.Com (8)
  • Html (34)
  • Pascal (2)
  • Photoshop (5)
  • PHP (2)
  • Planlar (114)
  • Programlama Tanım (4)
  • Sınavlar (128)
  • Sql (10)
  • VB 6.0 (45)
  • VB.NET (219)
  • Videolar (65)
  • Word (7)

Arşiv

Bağlantılar

  • Html Dersleri
  • Muslu.NET
  • Programlama Dersleri

Kimler Sitede ?


    Computers Blogs Top programming blogs

   sayaç Powered by WordPress | Theme by NeoEase | Valid XHTML 1.1 and CSS 3 Yukarı