如何在C#中使用Emgu CV库在图像上绘制矩形(附示例)
C# 基于X/Y轴坐标在图像上绘制矩形实现方法
方案1:使用.NET自带System.Drawing库(无需引入OpenCV/EmguCV)
该方案依赖.NET原生类库,无需额外集成CV相关第三方框架,对新手更友好:
- 环境准备:.NET Framework 可直接引用
System.Drawing命名空间使用;.NET Core/.NET 5+ 版本需先安装NuGet包System.Drawing.Common - 实现代码:
using System.Drawing; using System.Drawing.Imaging; // 加载本地原始图像 using Bitmap originalImg = new Bitmap("你的本地图像路径.png"); // 创建绘图对象 using Graphics graphics = Graphics.FromImage(originalImg); // 自定义矩形参数 int topLeftX = 50; // 矩形左上角X轴坐标 int topLeftY = 50; // 矩形左上角Y轴坐标 int rectWidth = 200; // 矩形宽度 int rectHeight = 150; // 矩形高度 Rectangle targetRect = new Rectangle(topLeftX, topLeftY, rectWidth, rectHeight); // 定义画笔:颜色为红色,线宽为2像素 using Pen drawPen = new Pen(Color.Red, 2); // 执行矩形绘制 graphics.DrawRectangle(drawPen, targetRect); // 保存处理后的图像 originalImg.Save("绘制完成的图像.png", ImageFormat.Png);
注意:
System.Drawing.Common仅默认支持Windows环境,跨平台场景可替换为ImageSharp等跨平台图像库,API逻辑基本一致。
方案2:使用Emgu CV实现
如果后续需要做更多计算机视觉相关操作,可直接用Emgu CV的内置方法实现,步骤如下:
- 环境准备:安装对应NuGet包,Windows环境需安装
Emgu.CV和Emgu.CV.runtime.windows - 实现代码:
using Emgu.CV; using Emgu.CV.Structure; using System.Drawing; // 加载本地原始图像 Mat originalImg = CvInvoke.Imread("你的本地图像路径.png"); // 自定义矩形参数 int topLeftX = 50; // 矩形左上角X轴坐标 int topLeftY = 50; // 矩形左上角Y轴坐标 int rectWidth = 200; // 矩形宽度 int rectHeight = 150; // 矩形高度 Rectangle targetRect = new Rectangle(topLeftX, topLeftY, rectWidth, rectHeight); // 执行矩形绘制:参数依次为目标图像、矩形范围、颜色(BGR格式)、线宽 CvInvoke.Rectangle(originalImg, targetRect, new Bgr(Color.Red).MCvScalar, 2); // 保存处理后的图像 CvInvoke.Imwrite("绘制完成的图像.png", originalImg);
内容的提问来源于stack exchange,提问作者Bahubali Patil
相关产品推荐
相关产品推荐

