0

这是网络摄像头程序,可以通过void ProcessFrame循环显示图像如何使用以下代码获取光标下图像框中的像素数据?

这是我从网站上捕获的代码。非常感谢您的帮助

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;
    }
}
4

1 回答 1

2

尝试这个:

private void pictureBox1_MouseClick(object sender, MouseEventArgs e)
        {
            var bmp = (Bitmap) pictureBox1.Image;
            var color = bmp.GetPixel(e.X, e.Y);
        }
于 2012-09-24T09:16:03.367 回答