ウェブカメラの前に円をかざすと円を検出するプログラムを作成しようとしています。円検出が画像に対してどのように機能するかは知っていますが、次のコードを使用して Web カメラ ストリームで機能させる方法がわかりません。
static class Program
{
/// <summary>
/// The main entry point for the application.
/// </summary>
[STAThread]
static void Main()
{
ImageViewer viewer = new ImageViewer(); //create an image viewer
Capture capture = new Capture(); //create a camera capture
Application.Idle += new EventHandler(delegate(object sender, EventArgs e)
{ //run this until application closed (close button click on image viewer)
Image<Bgr, Byte> image = capture.QueryFrame();
//MemStorage storage = new MemStorage();
//Contour<Point> contours = image.FindContours();
//Contour<Point> currentContour = contours.ApproxPoly(contours.Perimeter * 0.05, storage);
viewer.Image = image; //draw the image obtained from camera
});
viewer.ShowDialog(); //show the image viewer
}
ご覧のとおり、最も内側のループで FindContours を使用してみましたが、実行しようとするとプログラムがフリーズするので、その部分をコメントアウトしました。ウェブカメラを使用してサークル検出を実装する方法を誰か教えてもらえますか?