opencv c# winform任意图形填充

在winform里面,没有默认的任意图形填充函数,但opencv里面有,结合opencv可以轻松实现图形填充。代码如下:

引入库

using OpenCvSharp;
using OpenCvSharp.Extensions;

1、创建类数据成员bitmap

Bitmap bitmap;

2、在初始化后为pictureBox1的image和bitmap初始化(加上1,代码如下)

itmap bitmap;
        public Form1()
        {
            InitializeComponent();
            bitmap = new Bitmap(pictureBox1.Width, pictureBox1.Height);
            
            pictureBox1.Image = bitmap;
        }

3、在pictureBox上面对image进行绘图

var g = Graphics.FromImage(pictureBox1.Image) ;
            Pen p = new Pen(Color.Red,3);
            var rect = new Rectangle(0,0, 400,400);
            var rect1 = new Rectangle(50, 50, 300, 300);
            g.DrawEllipse(p, rect);
            g.DrawEllipse(p, rect1);
            g.Dispose();
            pictureBox1.Refresh();

4、填充

bitmap = (Bitmap)pictureBox1.Image;
            Mat img1= BitmapConverter.ToMat(bitmap);
            Cv2.CvtColor(img1, img1, ColorConversionCodes.BGRA2BGR);
            var pt1 = new OpenCvSharp.Point(150, 25);
            Cv2.FloodFill(img1, pt1, Scalar.Red);
            bitmap = OpenCvSharp.Extensions.BitmapConverter.ToBitmap(img1);
            pictureBox1.Image = bitmap;
            pictureBox1.Refresh();

显示结果如下:

  • 2
    点赞
  • 10
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

健忘的松鼠

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值