Пример #1
0
        /// <summary>
        /// 设置相机配参
        /// </summary>
        private void SetParameters()
        {
            if (_Camera == null)
            {
                return;
            }

            // 关闭触发模式
            _Camera.TriggerSet.Close();

            // 设置帧格式
            using (IEnumParameter ep = _Camera.ParameterCollection[ParametrizeNameSet.ImagePixelFormat])
            {
                ep.SetValue("Mono8");
            }

            // 获取图像宽度
            using (IIntegraParameter ip = _Camera.ParameterCollection[ParametrizeNameSet.ImageWidth])
            {
                this.MaxWidth = Convert.ToInt32(ip.GetMaximum());
                this.Width    = Convert.ToInt32(ip.GetValue());
            }

            // 获取图像高度
            using (IIntegraParameter ip = _Camera.ParameterCollection[ParametrizeNameSet.ImageHeight])
            {
                this.MaxHeight = Convert.ToInt32(ip.GetMaximum());
                this.Height    = Convert.ToInt32(ip.GetValue());
            }
        }
Пример #2
0
        public override bool SetImageWidth(long value)
        {
            using (IIntegraParameter p = m_dev.ParameterCollection[ParametrizeNameSet.ImageWidth])

            {
                return(p.SetValue(value));
            }
        }
Пример #3
0
        public override long GetMaxImageOffsetX()
        {
            using (IIntegraParameter p = m_dev.ParameterCollection[ParametrizeNameSet.ImageOffsetX])

            {
                return(p.GetMaximum());
            }
        }
Пример #4
0
        public override bool SetImageHeight(long value)
        {
            try
            {
                using (IIntegraParameter p = m_dev.ParameterCollection[ParametrizeNameSet.ImageHeight])

                {
                    return(p.SetValue(value));
                }
            }
            catch (Exception)
            {
                return(false);
            }
        }
Пример #5
0
        public override long GetImageWidth()  // 获取图像宽
        {
            try
            {
                using (IIntegraParameter p = m_dev.ParameterCollection[ParametrizeNameSet.ImageWidth])

                {
                    return(p.GetValue());
                }
            }
            catch (Exception)
            {
                return(0);
            }
        }
Пример #6
0
        public override long GetImageMinHeight()  // 获取最小图像高
        {
            try
            {
                using (IIntegraParameter p = m_dev.ParameterCollection[ParametrizeNameSet.ImageHeight])

                {
                    return(p.GetMinimum());
                }
            }
            catch (Exception)
            {
                return(0);
            }
        }
Пример #7
0
        // 打开相机
        private void btnOpen_Click(object sender, EventArgs e)
        {
            try
            {
                // 设备搜索
                List <IDeviceInfo> li = Enumerator.EnumerateDevices();
                if (li.Count > 0)
                {
                    // 获取搜索到的第一个设备
                    m_dev = Enumerator.GetDeviceByIndex(0);

                    // 注册链接时间
                    m_dev.CameraOpened   += OnCameraOpen;
                    m_dev.ConnectionLost += OnConnectLoss;
                    m_dev.CameraClosed   += OnCameraClose;

                    // 打开设备
                    if (!m_dev.Open())
                    {
                        MessageBox.Show(@"连接相机失败");
                        return;
                    }

                    // 打开Software Trigger
                    m_dev.TriggerSet.Open(TriggerSourceEnum.Software);

                    // 设置图像格式
                    using (IEnumParameter p = m_dev.ParameterCollection[ParametrizeNameSet.ImagePixelFormat])
                    {
                        p.SetValue("BayerRG12Packed");
                    }
                    // 设置图片亮度
                    using (IIntegraParameter p = m_dev.ParameterCollection[ParametrizeNameSet.Brightness])
                    {
                        p.SetValue(100);
                    }
                    //设置曝光时间
                    using (IFloatParameter p = m_dev.ParameterCollection[ParametrizeNameSet.ExposureTime])
                    {
                        p.SetValue(50000);
                    }

                    /*
                     * // 设置图片高度
                     * using (IIntegraParameter p = m_dev.ParameterCollection[ParametrizeNameSet.ImageHeight])
                     * {
                     *  p.SetValue(600);
                     * }
                     * // 设置图片宽度
                     * using (IIntegraParameter p = m_dev.ParameterCollection[ParametrizeNameSet.ImageWidth])
                     * {
                     *  p.SetValue(600);
                     * }
                     */

                    // 注册码流回调事件
                    m_dev.StreamGrabber.ImageGrabbed += OnImageGrabbed;

                    // 开启码流
                    if (!m_dev.GrabUsingGrabLoopThread())
                    {
                        MessageBox.Show(@"开启码流失败");
                        return;
                    }

                    m_dev.ExecuteSoftwareTrigger();
                }
            }
            catch (Exception exception)
            {
                Catcher.Show(exception);
            }
        }