/// <summary>
        /// カメラから画像を取得しそろばんを読み取る
        /// </summary>
        private void Update()
        {
            while (true)
            {
                CaptureImage cap;
                IplImage img;
                cap = this.camera.Capture();
                img = cap.ToIplImage();

                lock (this.capture_img)
                lock (this.results)
                {
                    this.capture_img = cap;
                    this.results = reader.AllMatching(img, threshold, out process_img);

                }
                process_window.ShowImage(Process_img);
                Cv.WaitKey(2);
                Thread.Sleep(10);
            }
        }
 /// <summary>
 /// �J��������摜��L���v�`������
 /// </summary>
 /// <returns>�J��������擾�����摜</returns>
 public CaptureImage Capture()
 {
     CaptureImage cap = new CaptureImage(dev.Capture());
     return cap;
 }
 /// <summary>
 /// リーダー初期設定
 /// </summary>
 /// <param name="threshold">閾値</param>
 /// <param name="template_sign">テンプレート画像のシグネチャ</param>
 private void initialize(double threshold, string template_sign)
 {
     this.threshold = threshold;
     this.reader = new SorobanReader(template_sign);
     this.results = new int[SorobanReader.DIVIDE_NUM];
     this.isReading = false;
     this.capture_img = new CaptureImage(new System.Drawing.Bitmap(320, 240));
     camera.Activate(320, 240);
 }