Aplicativos
Objetivo Geral
Adquirir e manipular imagens no notebook e microcontrolador. Esse conhecimento é base para vários projetos que pretendo iniciar.
Objetivos específicos
1. - Entender a imagem e seus formatos Ok
2. - Adquirir duas imagens (simultaneamente) de duas webcam. Ok
3. - Identificar objetos através da sua cor Ok
4. - Rastrear objetos discriminado pela cor Ok
5. - Identificar objeto ou ou desenho através de padrões
Equipamentos necessários
- Notebook
- Duas webcam
Programas
- SharpDevelop
- OpenCvSharp Cross platform wrapper of OpenCV for .NET Framework
- ImageJ
- GIMP
Bibliografia e Links
Softwares
ImageJ: http://rsb.info.nih.gov/ij/
GIMP: http://www.gimp.org/
SharpDevelo 4.4 http://www.icsharpcode.net/opensource/sd/
OpenCvSharp https://github.com/shimat/opencvsharp
Código básico
using System;
using System.Collections;
using System.Collections.Generic;
using System.Diagnostics;
using System.Linq;
using System.Runtime.InteropServices;
using System.Text;
using System.Windows.Forms;
using OpenCvSharp;
using OpenCvSharp.MachineLearning;
using OpenCvSharp.Blob;
using OpenCvSharp.UserInterface;
using OpenCvSharp.CPlusPlus;
namespace CStyleSamplesCS
{
/// <summary>
///
/// </summary>
static class Program
{
/// <remarks>Please uncomment some samples optionally.</remarks>
[STAThread]
static void Main()
{
Application.EnableVisualStyles();
Application.SetCompatibleTextRenderingDefault(false)
//------------------------------------
new CaptureCameraAWM();
//------------------------------------
}
}
}
Estudos
Até o momento todas as informações que eu obtive vieram da Internet, principalmente da página do professor Dr. Hemerson Pistori
http://www.gpec.ucdb.br/pistori/index-antigo.html
A seguir coloco alguns vídeos que acredito ser extremamente necessário para quem quer iniciar no estudo de processamento de imagens
Espaço de Cores HSB HSV
Vídeo educacional sobre o espaço de Cores HSB / HSV.
Etapas de um Sistema de Visão Computacional
Como fazer para
adimite-se que já esteja com o OpenCvSharp instalado no SharpDevelop
1. visualizar uma imagem
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using OpenCvSharp;
namespace CStyleSamplesCS
{
/// <summary>
/// カメラのキャプチャ
/// </summary>
class CaptureCameraAWM
{
public CaptureCameraAWM()
{
//------------------------------------
using (IplImage img = Cv.LoadImage(@"C:\Alberto\Wilttec\rostoAWM2.png"))
using (CvWindow w = new CvWindow("Apresenta uma Imagem"))
{
while (CvWindow.WaitKey(10) < 0)
{
w.Image = img;
}
}
//------------------------------------
}
}
}
2. visualizar a imagem da câmera (em tempo real)
//------------------------------------
using (CvCapture cap = CvCapture.FromCamera(0)) // device type + camera index
using (CvWindow w = new CvWindow("Imagem em tempo real"))
{
while (CvWindow.WaitKey(10) < 0)
{
w.Image = cap.QueryFrame();
}
}
//------------------------------------
3. visualizar as imagens de duas câmeras (em tempo real)
//------------------------------------
using (CvCapture cap = CvCapture.FromCamera(0)) // device type + camera index
using (CvCapture cap2 = CvCapture.FromCamera(1)) // device type + camera index
using (CvWindow w = new CvWindow("Imagem em tempo real - Cam 1"))
{
using (CvWindow w2 = new CvWindow("Imagem em tempo real - Cam 2"))
{
while (CvWindow.WaitKey(10) < 0)
{
w.Image = cap.QueryFrame();
w2.Image = cap2.QueryFrame();
}
}
}
//------------------------------------