Reputation: 11
Here is the webcam program, which can show the image by using void ProcessFrame loop How to get the pixel data in the image box under the cursor by using the following code?
Here are the code i capture from the website. Many thanks for the help
enter code here
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.Structure;
using Emgu.Util;
using System.Threading;
namespace MyOpenCV
{
public partial class Form2 : Form
{
public Form2()
{
InitializeComponent();
}
private Capture _capture;
private bool _captureInProgress;
private void ProcessFrame(object sender, EventArgs arg)
{
Image<Bgr, Byte> frame = _capture.QueryFrame();
captureImageBox1.Image = frame;
}
private void captureButton_Click_1(object sender, EventArgs e)
{
#region if capture is not created, create it now
if (_capture == null)
{
try
{
_capture = new Capture();
}
catch (NullReferenceException excpt)
{
MessageBox.Show(excpt.Message);
}
}
#endregion
if (_capture != null)
{
if (_captureInProgress)
{ //stop the capture
Application.Idle -= new EventHandler(ProcessFrame);
captureButton.Text = "Start Capture";
}
else
{
//start the capture
captureButton.Text = "Stop";
Application.Idle += new EventHandler(ProcessFrame);
}
_captureInProgress = !_captureInProgress;
}
}
Upvotes: 0
Views: 1872
Reputation: 449
Try this:
private void pictureBox1_MouseClick(object sender, MouseEventArgs e)
{
var bmp = (Bitmap) pictureBox1.Image;
var color = bmp.GetPixel(e.X, e.Y);
}
Upvotes: 2