jak napisać program w visual studio c# który porównuję zdjęcia zrobione kamerą i wykonuję konkretne rzeczy np otwiera folder, otwiera program?
jak się wziąć za taką analizę czego użyć? znalazłem coś o OpenCV nada się do tego?
Co ma wspólnego tytuł wątku z treścią pytania?
jak napisać program w visual studio c# który porównuję zdjęcia zrobione kamerą jak się wziąć za taką analizę czego użyć? znalazłem coś o OpenCV nada się do tego?
Tak, OpenCV służy do obróbki obrazu
i wykonuję konkretne rzeczy np otwiera folder, otwiera program?
Każdy program wykonuje 'konkretne rzeczy'
- mam wrażenie że nie wiesz co chcesz zrobić...
Otworzysz folder z tego co pamiętam przez Process.Start z parametrem jako ścieżka folderu (http://msdn.microsoft.com/en-us/library/0w4h05yb.aspx) mając UseShellExecute na true (ewentualnie uruchom explorer z parametrem).
w jakim języku najlepiej napisać program z użyciem OpenCV używając Visual Studio 2010?
dawid653 napisał(a):
w jakim języku najlepiej napisać program z użyciem OpenCV używając Visual Studio 2010?
Ech... W tym który najlepiej znasz. Masz do wyboru głównie C, C++, C#, Python - sądząc po Twoich poprzednich postach, piszesz w C# a ten temat został założony w dziale poświęconym C# i .NET - morał, pisz w C#.
wyskakuje mi błąd. proszę o poprawienie
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.CvEnum;
using Emgu.CV.Structure;
using Emgu.CV.UI;
/////////////////////////////////////
namespace WindowsFormsApplication1
{ /////////////////////////////////////
public partial class Form1 : Form
{
/////////////////////////////////////
Capture capWebcam = null;
bool blnCapturingInProcess = false;
Image<Bgr, Byte> imgOriginal;
Image<Gray, Byte> imgProcessed;
/////////////////////////////////////
public Form1()
{
InitializeComponent();
}
/////////////////////////////////////
private void Form1_Load(object sender, EventArgs e)
{
try
{
capWebcam = new Capture(); //TU BŁĄD "The type initializer for 'Emgu.CV.CvInvoke' threw an exception."
}
catch (NullReferenceException except)
{
txtXYRadlus.Text = except.Message;
return;
}
Application.Idle += processFrameAndUpdateGUI;
blnCapturingInProcess = true;
}
/////////////////////////////////////
private void Form1_FormClosed(object sender, FormClosedEventArgs e)
{
if (capWebcam != null)
{
capWebcam.Dispose();
}
}
/////////////////////////////////////
void processFrameAndUpdateGUI(object sender, EventArgs arg)
{
imgOriginal = capWebcam.QueryFrame();
if(imgOriginal == null) return;
imgProcessed = imgOriginal.InRange(new Bgr(0, 0, 175),
new Bgr(100, 100, 256));
imgProcessed = imgProcessed.SmoothGaussian(9);
CircleF[] circles = imgProcessed.HoughCircles(new Gray(100),
new Gray(50),
2,
imgProcessed.Height /4,
10,
400)[0];
foreach(CircleF circle in circles)
{
if(txtXYRadlus.Text != "") txtXYRadlus.AppendText(Environment.NewLine);
txtXYRadlus.AppendText("ball position = x" + circle.Center.X.ToString().PadLeft(4) +
", y = " + circle.Center.Y.ToString().PadLeft(4) +
", radius =" + circle.Radius.ToString("###.000").PadLeft(7));
txtXYRadlus.ScrollToCaret();
CvInvoke.cvCircle(imgOriginal,
new Point((int)circle.Center.X, (int)circle.Center.Y),
3,
new MCvScalar(0,255,0),
-1,
LINE_TYPE.CV_AA,
0);
imgOriginal.Draw(circle,
new Bgr(Color.Red),
3);
}
ibOriginal.Image = imgOriginal;
ibProcessed.Image = imgProcessed;
}
/////////////////////////////////////
private void btnPauseOrResume_Click(object sender, EventArgs e)
{
if(blnCapturingInProcess == true)
{
Application.Idle -= processFrameAndUpdateGUI;
blnCapturingInProcess = false;
btnPauseOrResume.Text = "resume";
} else{
Application.Idle += processFrameAndUpdateGUI;
blnCapturingInProcess = true;
btnPauseOrResume.Text = "pause";
}
}
/////////////////////////////////////
}
}