海康相机二次开发之缩小相机拍摄范围

海康相机二次开发之缩小相机拍摄范围

在机器视觉的图像处理过程中,图像大而目标小则可能增加图像的处理时间。如果可以缩小相机的拍摄范围,只抓取包含目标的某一范围的图像,则可缩短图像的处理时间。在海康相机的二次开发过程中,我们可通过设置相机的参数来控制或者说缩小相机的拍摄范围。

第一步,设置所需的拍摄范围

打开相机后,要在相机当前的拍摄范围内绘制一动态矩形,设置自己所需的矩形拍摄区域,同时获取矩形的初始坐标点以及宽高。

示例代码:

        relativeRoi roi;

        private Point startPoint, endPoint;
        private bool blnDraw;
        private void pbShowImg_MouseDown(object sender, MouseEventArgs e)
        {
            if (e.Button == MouseButtons.Left)
            {
                startPoint = e.Location;
                blnDraw = true;
            }
        }

        private void pbShowImg_MouseMove(object sender, MouseEventArgs e)
        {
            if (blnDraw)
            {
                if (e.Button != MouseButtons.Left) return;//判断是否按下左键

                endPoint = e.Location;
                pbShowImg.Invalidate();
            }
        }

        private void pbShowImg_MouseUp(object sender, MouseEventArgs e)
        {
            if (e.Button == MouseButtons.Left)
            {
                endPoint = e.Location;
                blnDraw = false;
            }
        }

        private void pbShowImg_Paint(object sender, PaintEventArgs e)
        {
            if (startPoint.Equals(endPoint)) return;
            Pen pen = new Pen(Color.Red, 2);
            pen.DashStyle = System.Drawing.Drawing2D.DashStyle.Dot;
            if (blnDraw)
            {
                //绘制矩形
                e.Graphics.DrawRectangle(pen, Math.Min(startPoint.X, endPoint.X), Math.Min(startPoint.Y, endPoint.Y), Math.Abs(startPoint.X - endPoint.X), Math.Abs(startPoint.Y - endPoint.Y));
    
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值