OpenCvSharp手绘ROI区域+模板匹配+霍夫变换检测圆的边界

最终效果如下:

左侧为检测图片、右侧为模板,右下角textbox为轮毂中心的像素坐标

操作步骤:

1、点击打开图像选择一张比较不错的图片,用于画模板;

2、在picturebox中画取ROI区域生成模板(拖拽线不显示就合理利用微软提供的画形状的方法和合理使用picturebox.Refresh()即可解决);

3、重新选取一张待检测图片,点击模板匹配,即可找到ROI区域并把圆的边界和圆心找到;

完整代码如下(代码还有待改善):

using OpenCvSharp;
using OpenCvSharp.Extensions;
using System;
using System.Linq;
using System.Windows.Forms;
using Point = OpenCvSharp.Point;
using Size = OpenCvSharp.Size;

namespace DrawROI
{
    public partial class Form1 : Form
    {
        private System.Drawing.Point RectStartPoint, tempEndPoint;
        bool blnDraw;
        Mat ImageROI;
        Mat OrgMat;
        private string FilePath;
        public Form1()
        {
            InitializeComponent();
        }

        private void pictureBox1_MouseDown(object sender, MouseEventArgs e)
        {
            RectStartPoint = e.Location; //获得鼠标按下的pictureBox上坐标
            Invalidate();
            blnDraw = true;//判断标志
        }
        private void pictureBox1_MouseMove(object sender, MouseEventArgs e)
        {
            if (blnDraw)
            {
                if (e.Button != MouseButtons.Left)//判断是否按下左键
                {
                    return;
                }

                tempEndPoint = e.Location; //记录框的位置和大小
                //pictureBox上开始点坐标
                //Rect.Location = new System.Drawing.Point(
                //Math.Min(RectStartPoint.X, tempEn
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值