/// <summary>
        /// 映美金相机触发出图
        /// </summary>
        /// <param name="sender"></param>
        /// <param name="e"></param>
        private void icImagingControl_ImageAvailable(object sender, TIS.Imaging.ICImagingControl.ImageAvailableEventArgs e)
        {
            TIS.Imaging.ImageBuffer CurrentBuffer = icImagingControl.ImageBuffers[e.bufferIndex];
            Image <Gray, byte>      grayImage     = new Image <Gray, byte>(CurrentBuffer.Bitmap);

            YMJcamera.GetCamParams();//获取内参
            //校正畸变
            CvInvoke.InitUndistortRectifyMap(TisCamera.cameraMatrix, TisCamera.distCoeffs, null, TisCamera.cameraMatrix,
                                             TisCamera.imageSize, DepthType.Cv32F, TisCamera.mapx, TisCamera.mapy);
            CvInvoke.Remap(grayImage, grayImage, TisCamera.mapx, TisCamera.mapy, Inter.Linear, BorderType.Constant, new MCvScalar(0));
            for (int i = 0; i < TisCamera.height; i++)
            {
                for (int j = 0; j < TisCamera.width; j++)
                {
                    TisCamera.YMJImage.Data[i, j, 2] = grayImage.Data[i, j, 0];
                    TisCamera.YMJImage.Data[i, j, 1] = grayImage.Data[i, j, 0];
                    TisCamera.YMJImage.Data[i, j, 0] = grayImage.Data[i, j, 0];
                }
            }
            if (GLB.Camera_index == 1)
            {
                DealWithImage.getContoursForYMJ(grayImage, ptbDisplay);
                ptbDisplay.Image = TisCamera.YMJImage.ToBitmap();//显示映美金图像
            }
        }
Esempio n. 2
0
        private void CameraCtrl_ImageAvailable(object sender, TIS.Imaging.ICImagingControl.ImageAvailableEventArgs e)
        {
            try
            {
                CameraCtrl.OverlayBitmap.DrawText(Color.Red, 10, 10, _pGPSCtrl.RMCData.LocalTime);
                CameraCtrl.OverlayBitmap.DrawText(Color.Red, 150, 10, "Lat:" + _pGPSCtrl.RMCData.Latitude + " Log:" + _pGPSCtrl.RMCData.Longitude);
                CameraCtrl.OverlayBitmap.DrawText(Color.Red, 550, 10, "Speed:" + _pGPSCtrl.RMCData.Speed.ToString());

                TIS.Imaging.ImageBuffer ImgBuffer;
                ImgBuffer = CameraCtrl.ImageActiveBuffer;
                ImgBuffer.Lock();

                // Display the processed image in the IC Imaging Control window.
                this.BeginInvoke(new ShowBufferDelegate(ShowImageBuffer), ImgBuffer);

                if (_bIsSave == true)
                {
                    string strFileName = String.Format("image_{0}_{1}.bmp", (_nSaveCount++), DateTime.Now.ToString("yyyyMMddHHmmssfff"));
                    ImgBuffer.SaveAsBitmap(strFileName);
                }
            }
            catch (Exception ex)
            {
                // An exception that occurs here cannot be handled elsewhere.
                // Therefore, if you are using the ImageAvailable event, watch the debug
                // output window of your Visual Studio because the message (see below)
                // will appear there.
                System.Diagnostics.Debug.WriteLine(ex.Message);
            }
        }
Esempio n. 3
0
 /// <summary>
 /// icImagingControl1_ImageAvailable
 ///
 /// This is the ImageAvailable event handler. The number of captured frames is counted by this method.
 /// If the number of frames is higher than the ring buffer's size, the delegate "EnableCaptureDelegate"
 ///  is called in order to enable the "Capture" button.
 /// </summary>
 /// <param name="sender"></param>
 /// <param name="e"></param>
 private void icImagingControl1_ImageAvailable(object sender, TIS.Imaging.ICImagingControl.ImageAvailableEventArgs e)
 {
     if (btnCapture.Enabled == false)
     {
         if (FrameCount > icImagingControl1.ImageRingBufferSize)
         {
             // Now it is time to enable the capture button.
             BeginInvoke(new EnableCaptureDelegate(EnableCaptureButton));
         }
         else
         {
             FrameCount++;
         }
     }
 }
Esempio n. 4
0
        //取流回调函数
        private void ImageCallBack(object sender, TIS.Imaging.ICImagingControl.ImageAvailableEventArgs e)
        {
            try
            {
                //Trace.WriteLine(string.Format("触发回调 = {0}", DateTime.Now.ToString("HH:mm:ss:fff")));
                TIS.Imaging.ImageBuffer CurrentBuffer = null;
                CurrentBuffer = m_ImageControl.ImageBuffers[e.bufferIndex];
                bmp_image1    = CurrentBuffer.Bitmap;

                ho_image1 = Bitmap2HObject(bmp_image1);



                // bmp_image1
                // ReturnImgEvent.Set();
                //Trace.WriteLine(string.Format("获取图像 = {0}",DateTime.Now.ToString("HH:mm:ss:fff")));

                if (bmp_image1 != null)
                {
                    bool benableNew = false;
                    if (threadProcess1 == null)
                    {
                        benableNew = true;
                    }
                    else if (!threadProcess1.IsAlive)
                    {
                        benableNew = true;
                    }

                    if (benableNew)
                    {
                        threadProcess1 = new System.Threading.Thread(processCamera01);
                        threadProcess1.Start();
                    }
                }
            }
            catch (Exception ex)
            {
                Trace.WriteLine(ex.Message + "回调失败!!!");
            }
        }
Esempio n. 5
0
 // This is the ImageAvailable event handler
 public static void OnImageAvailable(object sender, TIS.Imaging.ICImagingControl.ImageAvailableEventArgs e)
 {
     // The image is in e.ImageBuffer
     Console.WriteLine("Image!");
 }