/// <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();//显示映美金图像
            }
        }
Exemplo n.º 2
0
 /// <summary>
 /// Show assigned image buffer.
 /// </summary>
 /// <param name="buffer"></param>
 private void ShowImageBuffer(TIS.Imaging.ImageBuffer buffer)
 {
     CameraCtrl.DisplayImageBuffer(buffer);
     buffer.Unlock();
 }