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库的描述,如下图所示:
OpenCvSharp4库

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

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

2、安装OpenCvSharp4库

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

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

对应的C#代码如下:

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)到右下角画一条绿色的直线,线条厚度为3Cv2.Line(img, new Point(0, 0), new Point(height, width), new Scalar(0, 255, 0), 3);// 在左上角顶点(0,0)和右下角(250,350)处绘制一个红色矩形,边界线条厚度为2Cv2.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,颜色为黄色,厚度为2Cv2.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中运行上述代码,结果如下:
C#中使用OpenCvSharp4绘制直线、矩形、圆、文本

三、参考资料

  • OpenCvSharp4
  • LEARN OPENCV C++ in 4 HOURS | Including 3x Projects | Computer Vision
  • murtazahassan/Learn-OpenCV-cpp-in-4-Hours
  • LEARN OPENCV in 3 HOURS with Python | Including 3xProjects | Computer Vision
  • Learn-OpenCV-in-3-hours
  • OpenCV官网
  • Python中使用Opencv-python库绘制直线、矩形、圆、文字

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.hqwc.cn/news/458211.html

如若内容造成侵权/违法违规/事实不符,请联系编程知识网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

HarmonyOS SDK 助力新浪新闻打造精致易用的新闻应用

原生智能是HarmonyOS NEXT的核心亮点之一&#xff0c;依托HarmonyOS SDK丰富全面的开放能力&#xff0c;开发者只需通过几行代码&#xff0c;即可快速实现AI功能。新浪新闻作为鸿蒙原生应用开发的先行者之一&#xff0c;从有声资讯入手&#xff0c;基于Speech Kit朗读控件上线听…

cocos creator 3.x 预制体无法显示

双击预制体&#xff0c;进入详情页&#xff0c;没有显示资源 Bomb 是个预制体&#xff0c;但是当我双击进来什么都没有了&#xff0c;无法对预制体进行可视化编辑 目前我只试出来一个解决方法&#xff1a; 把预制体拖进Canvas文件中&#xff0c;这样就能展示到屏幕上&#xff…

在angular12中proxy.conf.json中配置详解

一、proxy.conf.json文件的目录 二、proxy.conf.json文件中的配置 "/xxx/api": {"target": "地址/api","secure": false,"logLevel": "debug","changeOrigin": true,"pathRewrite": {"…

【 buuctf-后门查杀】

采用 D 盾进行扫描查杀 有一个级别为 5 的扫描结果&#xff0c;记事本打开&#xff0c;即为 flag

python算法与数据结构(搜索算法和拓扑排序算法)---广度优先搜索和拓扑排序

广度优先搜索BFS 定义&基本内容 广度优先是按照层次由近及远的进行搜索&#xff0c;在当前层次所有可及节点都搜索完毕后才会继续往下搜索&#xff0c;其本质就是寻找从起点到终点的最短路程。 树的广度优先搜索 树的广度优先遍历&#xff0c;可以看成是层序遍历。 访问…

使用vite创建vue+ts项目,整合常用插件(scss、vue-router、pinia、axios等)和配置

一、检查node版本 指令&#xff1a;node -v 为什么要检查node版本&#xff1f; Vite 需要 Node.js 版本 18&#xff0c;20。然而&#xff0c;有些模板需要依赖更高的 Node 版本才能正常运行&#xff0c;当你的包管理器发出警告时&#xff0c;请注意升级你的 Node 版本。 二、创…

一文学会gtest UT测试编写(TEST\TEST_F)

目录 一、官方文档&代码 二、不同平台导入gtest静态库 Android工程 Linux 三、UT测试 Step by Step 1. 示例入门 2. 断言 EXPECT 与 ASSERT 3. TEST与TEST_F TEST TEST_F 4. gmock Google Test&#xff08;简称 gtest&#xff09;是 Google C 测试框架&#xff0c…

JVM Java虚拟机入门指南

文章目录 为什么学习JVMJVM的执行流程JVM的组成部分类加载运行时数据区本地方法接口执行引擎 垃圾回收什么样的对象是垃圾呢内存溢出和内存泄漏定位垃圾的方法对象的finalization机制垃圾回收算法分代回收垃圾回收器 JVM调优参数JVM调优工具Java内存泄漏排查思路CPU飙高排查方案…

【十】【C++】string类的模拟实现

浅拷贝 浅拷贝&#xff08;Shallow Copy&#xff09;是对象复制的一种方式&#xff0c;其中复制对象的过程仅仅复制对象的值&#xff0c;而不复制引用所指向的实际对象或数据。这意味着原始对象和拷贝对象会共享相同的引用或指针指向的数据。 浅拷贝的特点&#xff1a; 共享…

Python tkinter (16) —— Progressbar

本文主要介绍Python tkinter 进度条Progressbar应用及示例。 目录 系列文章 进度条Progressbar 基本概念 参数&#xff1a; mode参数 基本应用 动画设计 引入time 具体实现 start/step/stop step(amount)&#xff1a; start(interval)&#xff1a; stop()&#xff…

react中hook封装一个table组件

目录 react中hook封装一个table组件依赖CommonTable / index.tsx使用组件效果 react中hook封装一个table组件 依赖 cnpm i react-resizable --save cnpm i ahooks cnpm i --save-dev types/react-resizableCommonTable / index.tsx import React, { useEffect, useMemo, use…

VMware虚拟机安装openEuler系统(一)(2024)

目录 一、下载ISO镜像 二、开始创建虚拟机 通过实践是学习openEuler开源Linux系统的最佳方式。因此我们首先得搭建一个openEuler实战环境&#xff0c;文章是在Windows系统上使用VMware Workstation虚拟化软件&#xff0c;安装和学习openEuler开源Linux操作系统。 使用虚拟机…