Beispiel #1
0
        private void butOpen_Click(object sender, EventArgs e)
        {
            int CamNum = 0;
            //获取相机个数
            MVSTATUS_CODES r = MVGigE.MVGetNumOfCameras(out CamNum);

            if (CamNum == 0)
            {
                MessageBox.Show("没有找到相机,请确认连接和相机IP设置");
                return;
            }
            //打开第0个相机
            r = MVGigE.MVOpenCamByIndex(0, out m_hCam);
            if (m_hCam == IntPtr.Zero)
            {
                if (r == MVSTATUS_CODES.MVST_ACCESS_DENIED)
                {
                    MessageBox.Show("无法打开相机,可能正被别的软件控制");
                    return;
                }
            }
            int w, h;

            //获取图像宽
            r = MVGigE.MVGetWidth(m_hCam, out w);
            if (CamNum == 0)
            {
                MessageBox.Show("取得图像宽度失败");
                return;
            }
            //获取图像高
            r = MVGigE.MVGetHeight(m_hCam, out h);
            if (CamNum == 0)
            {
                MessageBox.Show("取得图像高度失败");
                return;
            }
            //获取图像像素格式
            r = MVGigE.MVGetPixelFormat(m_hCam, out m_PixelFormat);
            if (CamNum == 0)
            {
                MessageBox.Show("取得图像颜色模式失败");
                return;
            }
            //创建图像
            if (m_PixelFormat == MVAPI.MV_PixelFormatEnums.PixelFormat_Mono8)
            {
                m_hImage = MVAPI.MVImage.MVImageCreate(w, h, 8);
            }
            else
            {
                m_hImage = MVAPI.MVImage.MVImageCreate(w, h, 24);
            }
            this.butOpen.Enabled  = false;
            this.butGrab.Enabled  = true;
            this.butClose.Enabled = false;
        }
Beispiel #2
0
        private void butGrab_Click(object sender, EventArgs e)
        {
            MVAPI.TriggerModeEnums mode;
            //获取相机触发模式
            MVGigE.MVGetTriggerMode(m_hCam, out mode);
            //如果相机不是连续采集模式
            if (mode != MVAPI.TriggerModeEnums.TriggerMode_Off)
            {
                //设置相机为连续采集模式
                MVGigE.MVSetTriggerMode(m_hCam, MVAPI.TriggerModeEnums.TriggerMode_Off);
            }
            //为StreamCBDelegate委托注册StreamCB方法
            StreamCBDelegate += new MVAPI.MV_SNAPPROC(StreamCB);
            //开始采集
            MVSTATUS_CODES r = MVGigE.MVStartGrab(m_hCam, StreamCBDelegate, this.Handle);

            this.butOpen.Enabled  = false;
            this.butGrab.Enabled  = false;
            this.butClose.Enabled = true;
            m_bRun = true;
        }