这是网络摄像头程序,可以使用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;
}
}
答案 0 :(得分:1)
试试这个:
private void pictureBox1_MouseClick(object sender, MouseEventArgs e)
{
var bmp = (Bitmap) pictureBox1.Image;
var color = bmp.GetPixel(e.X, e.Y);
}