Pages

Menampilkan Video Binary Color dari Webcam dengan C# Emgu Library

Biasanya ketika kita akan membangun sebuah aplikasi pencitraan antau pengenalan pattenr terlebih dahulu kita harus meng extract ciri yang ada dalam sebuah citra. caranya adalah dengan membuat citra kita menjadi citra binary atau threshold yaitu citra yang hanya terdiri dari warna hitam dan putih saja. seperti contoh dibawah ini.







using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.Linq;
using System.Text;
using System.Windows.Forms;
using Emgu.CV;
using Emgu.CV.UI;
using Emgu.CV.Structure;


namespace WindowsFormsApplication1
{
public partial class Form1 : Form
{
private Capture cap;

public Form1()
{
InitializeComponent();
}

private void button1_Click(object sender, EventArgs e)
{
webCamCapture.TimeToCapture_milliseconds = 20;
webCamCapture.Start(0);
}
private void Form1_FormClosed(object sender, FormClosedEventArgs e)
{

}
private Bitmap flipHorizontal(Image bmp){
Bitmap b = new Bitmap(bmp);
b.RotateFlip(RotateFlipType.RotateNoneFlipX);
return b;
}
private void webCamCapture_ImageCaptured(object source, WebCam_Capture.WebcamEventArgs e)
{
this.pictureBox1.Image = flipHorizontal(e.WebCamImage);
}

private void button2_Click(object sender, EventArgs e)
{
cap = new Capture(); //create a camera captue
cap.FlipHorizontal = true; //flipHorizontal camera
cap.SetCaptureProperty(Emgu.CV.CvEnum.CAP_PROP.CV_CAP_PROP_FRAME_HEIGHT, 240); //set height of camera
cap.SetCaptureProperty(Emgu.CV.CvEnum.CAP_PROP.CV_CAP_PROP_FRAME_WIDTH, 320); //set width of camera
timer1.Enabled = true;
}

private void timer1_Tick(object sender, EventArgs e)
{
Image img;
Emgu.CV.Structure.Gray g = new Gray(100);
Emgu.CV.Structure.Gray g2 = new Gray(125);

pictureBox1.Image = cap.QueryGrayFrame().ThresholdBinaryInv(g,g2).ToBitmap();
}
}
}