C#中使用OpenCvSharp4绘制直线、矩形、圆、文本

C#中使用OpenCvSharp4绘制直线、矩形、圆、文本

继之前的Python中使用Opencv-python库绘制直线、矩形、圆、文本VC++中使用OpenCV绘制直线、矩形、圆和文字,将之前的Python和C++示例代码翻译成C#语言,很简单,还是借用OpenCvSharp4库中的Line、Rectangle、Circle、PutText,值得一提的是https://github.com/opencv/opencv以及OpenCvSharp4库和Opencv-python的函数基本相同。

一、OpenCvSharp4库

OpenCvSharp4库是一个基于.Net封装的OpenCV库,Github源代码地址为:https://github.com/shimat/opencvsharp,里面有关于Windows下安装OpenCvSharp4库的描述,如下图所示:

二、C#中使用OpenCvSharp4绘制直线、矩形、圆、文本

1、使用VS2022创建一个C# .Net控制台程序,项目命名为OpenCVExample

2、安装OpenCvSharp4库

安装OpenCvSharp4OpenCvSharp4.runtime.win两个NuGet包,或者直接安装OpenCvSharp4.Windows

3、使用OpenCvSharp4绘制直线、矩形、圆、文本

对应的C#代码如下:

csharp 复制代码
using OpenCvSharp;
using System;

namespace OpenCVExample
{
    public class Program
    {
    	/// <summary>
        /// 绘制直线、矩形、圆、文字
        /// </summary>
        public static void DrawShapes()
        {
            Mat img = new Mat(512, 512, MatType.CV_8UC3, new Scalar(0, 0, 0)); // 高度512,宽度512,颜色为黑色
            int height = img.Height;
            int width = img.Width;
            int channels = img.Channels();
            Console.WriteLine("height: {0}, width: {1}, channels: {2}", height, width, channels);

            // 在图像左上角原点(0,0)到右下角画一条绿色的直线,线条厚度为3
            Cv2.Line(img, new Point(0, 0), new Point(height, width), new Scalar(0, 255, 0), 3);
            // 在左上角顶点(0,0)和右下角(250,350)处绘制一个红色矩形,边界线条厚度为2
            Cv2.Rectangle(img, new Point(0, 0), new Point(250, 350), new Scalar(0, 0, 255), 2);
            // 以(400,50)为中心,绘制半径为30的圆,颜色为青色(绿+蓝=青(Cyan))
            Cv2.Circle(img, new Point(400, 50), 30, new Scalar(255, 255, 0), 2);
            // 在(350,300)处绘制文字,字体为FONT_HERSHEY_COMPLEX,比例为1,颜色为黄色,厚度为2
            Cv2.PutText(img, "OpenCV", new Point(350, 300), HersheyFonts.HersheyComplex, 1, new Scalar(0, 255, 255), 2);

            Cv2.ImShow("Image", img);
            Cv2.WaitKey(0); // 永久等待用户输入,直到用户按下按键结束
            Cv2.DestroyAllWindows();    // 销毁所有窗口
        }   
        static void Main(string[] args)
        {
            DrawShapes();
        }
    }
}

4、程序运行结果

在Visual Studio 2022中运行上述代码,结果如下:

三、参考资料

相关推荐
科技道人12 小时前
记录 默认置灰/禁用 app ‘Search Engine Selector‘ 的disable按钮
开发语言·前端·javascript
逝水无殇14 小时前
C# 异常处理详解
开发语言·后端·c#
玖玥拾16 小时前
C# 语言进阶(十五)C# 游戏服务端 MySQL 数据库
服务器·开发语言·网络·数据库·mysql·c#
铅笔侠_小龙虾16 小时前
Rust 学习目录
开发语言·学习·rust
云泽80816 小时前
从零吃透 C++ 异常:抛出捕获、栈展开、异常重抛与编码规范详解
开发语言·c++·代码规范
灯澜忆梦16 小时前
GO---可见性规则
开发语言·golang
逝水无殇17 小时前
C# 文件的输入与输出详解
开发语言·数据库·后端·c#
这是个栗子18 小时前
前端开发中的常用工具函数(八)
开发语言·前端·javascript
凤凰院凶涛QAQ18 小时前
《Java版数据结构 & 集合类剖析》栈与队列:“push/pop 是栈的灵魂,offer/poll 是队列的骨架——四组 API,两种人生”
java·开发语言·数据结构
研☆香18 小时前
为什么变量声明在赋值前也能使用?—— 深入理解 JavaScript 变量提升与作用域
开发语言·前端·javascript