Difference between revisions of "CSharp OpenCV"
From Ilianko
Line 15: | Line 15: | ||
*Desktop->nvcuda.dll премества се в директорията debug на приложението. | *Desktop->nvcuda.dll премества се в директорията debug на приложението. | ||
− | 3. Добавяне на | + | 3. Добавяне на namespaces |
Освен автоматично генерираните | Освен автоматично генерираните | ||
+ | <code><pre> | ||
using System; | using System; | ||
using System.Collections.Generic; | using System.Collections.Generic; | ||
Line 25: | Line 26: | ||
using System.Text; | using System.Text; | ||
using System.Windows.Forms; | using System.Windows.Forms; | ||
− | + | </pre><code> | |
− | |||
+ | Трябва да се добавят използваните от openCV | ||
+ | <code><pre> | ||
using Emgu.CV; | using Emgu.CV; | ||
using Emgu.Util; | using Emgu.Util; | ||
using Emgu.CV.Structure; | using Emgu.CV.Structure; | ||
+ | using System.Windows.Threading; | ||
+ | </pre></code> | ||
namespace WindowsFormsApplication1 | namespace WindowsFormsApplication1 |
Revision as of 09:31, 12 February 2014
1. Конфигуриране на OpenCV със C#.
- Инсталиране на EMGU wrapper
- Инсталиране (Repair) на Microsoft Visual C++ 2010 Redistributable Package (x86)
2. Създаване на проект в C# и добавяне на необходимите библиотеки
- Start->All Programs->MS VS2010 Express -> MS VS2010 Express
- File->New Project->Windows Forms Application->OK
- File->Save
- References->Add Reference->Browse->C:/EMGU->emgu...->bin->Emgu.CV.dll,Emgu.CV.UI.dll, Emgu.Utils.dll
- References->Add Reference->.Net->WindowsBase->OK
- C:/EMGU->emgu...->bin->x86->Object of type - exe, dll, ocx) -> преместват се се всички в директорията debug на приложението
- Desktop->nvcuda.dll премества се в директорията debug на приложението.
3. Добавяне на namespaces Освен автоматично генерираните
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;
Трябва да се добавят използваните от openCV
using Emgu.CV;
using Emgu.Util;
using Emgu.CV.Structure;
using System.Windows.Threading;
namespace WindowsFormsApplication1
{
public partial class Form1 : Form
{
public Form1()
{
InitializeComponent();
}
private Capture cap = new Capture(0);
public Rectangle[] ccc;
private CascadeClassifier xxx = new CascadeClassifier(@"haarcascade_frontalface_default.xml");
private Size min = new Size(20,20);
private Size max = new Size(300,300);
private DispatcherTimer timer = new DispatcherTimer();
private void Form1_Load(object sender, EventArgs e)
{
Image<Bgr, Byte> currentFrame = cap.QueryFrame();
this.Size = currentFrame.Size;
timer.Tick += new EventHandler(timer_Tick);
timer.Interval = new TimeSpan(0, 0, 0, 0, 35);
timer.Start();
}
int i = 0;
void timer_Tick(object sender, EventArgs e)
{
Image<Bgr, Byte> currentFrame = cap.QueryFrame();
Image<Gray, Byte> grayFrame = currentFrame.Convert<Gray, Byte>();
if (i > 35 || i == 0)
{
ccc = xxx.DetectMultiScale(grayFrame, 1.2, 2, min, max);
i = 0;
}
i++;
foreach (var face in ccc)
currentFrame.Draw(face, new Bgr(0, double.MaxValue, 0), 3);
pictureBox1.Image = currentFrame.Bitmap;
}
}
}
4.