OpenCVSharp 入门

2023-05-16

OpenCVSharp 入门

了解对象和图像处理编程的开发人员应该能够轻松地学会如何使用OpenCVsharp。

获得OpenCVSharp

要获得OpenCVSharp,要使用NuGet下载opencvsharp,它是一个强大的.NET封装库,提供了很多基础应用方面的功能和类。


设置环境

要开始使用OpenCVsharp,要将OpencvSharp添加到项目中,右键引用选择管理NuGet程序包,
这里创建的项目为C# 控制台应用)
在这里插入图片描述
在输入框搜索OpencvSharp,选择OpenCvSharp3-AnyCPU安装
在这里插入图片描述
在这里插入图片描述
下载完成后需要将OpenCvSharp引入:

  • using OpencvSharp;

图像类型

预定义:
CV_<bit_depth>(S|U|F)C<number_of_channels>

  • bit_depth:
    比特数,图像每一个像素点在内存空间所占的空间大小是8bite-8位,所以它对应的就是CV_8
  • S|U|F–S:
    代表—signed int—有符号整形
    U–代表–unsigned int–无符号整形
    F–代表–float---------单精度浮点型
  • C<number_of_channels>
    代表—一张图片的通道数,比如:
    灰度图片–grayImg是–单通道图像
    RGB彩色图像是–3通道图像
    带Alph通道的RGB图像(RGBA)是–4通道图像

在OpenCvSharp中常用的图像颜色空间为B、G、R

常用基本图像类型

图像类型MatType.CV_8UC1MatType.CV_8UC3MatType.CV_8UC4
/8位单通道8位三通道8位四通道

Mat类型为OpenCv图像类
图像可以看作一个矩阵
X,Y轴从左上角开始
例如下面是一个三通道图像

0,0(B,G,R)1,0(B,G,R)2,0(B,G,R)3,0(B,G,R)4,0(B,G,R)5,0(B,G,R)6,0(B,G,R)7,0(B,G,R)8,0(B,G,R)9,0(B,G,R)
0,1(B,G,R)1,1(B,G,R)2,1(B,G,R)3,1(B,G,R)4.1(B,G,R)5.1(B,G,R)6.1(B,G,R)7.1(B,G,R)8.1(B,G,R)9.1(B,G,R)
0,2(B,G,R)1,2(B,G,R)2,2(B,G,R)3,2(B,G,R)4,2(B,G,R)5,2(B,G,R)6,2(B,G,R)7,2(B,G,R)8,2(B,G,R)9,2(B,G,R)
0,3(B,G,R)1,3(B,G,R)2,3(B,G,R)3,3(B,G,R)4,3(B,G,R)5,3(B,G,R)6,3(B,G,R)7,3(B,G,R)8,3(B,G,R)9,3(B,G,R)
0,4(B,G,R)1,4(B,G,R)2,4(B,G,R)3,4(B,G,R)4,4(B,G,R)5,4(B,G,R)6,4(B,G,R)7,4(B,G,R)8,4(B,G,R)9,4(B,G,R)
0,5(B,G,R)1,5(B,G,R)2,5(B,G,R)3,5(B,G,R)4,5(B,G,R)5,5(B,G,R)6,5(B,G,R)7,5(B,G,R)8,5(B,G,R)9,5(B,G,R)
0,6(B,G,R)1,6(B,G,R)2,6(B,G,R)3,6(B,G,R)4,6(B,G,R)5,6(B,G,R)6,6(B,G,R)7,6(B,G,R)8,6(B,G,R)9,6(B,G,R)
0,7(B,G,R)1,7(B,G,R)2,7(B,G,R)3,7(B,G,R)4,7(B,G,R)5,7(B,G,R)6,7(B,G,R)7,7(B,G,R)8,7(B,G,R)9,7(B,G,R)
0,8(B,G,R)1,8(B,G,R)2,8(B,G,R)3,8(B,G,R)4,8(B,G,R)5,8(B,G,R)6,8(B,G,R)7,8(B,G,R)8,8(B,G,R)9,8(B,G,R)
0,9(B,G,R)1,9(B,G,R)2,9(B,G,R)3,9(B,G,R)4,9(B,G,R)5,9(B,G,R)6,9(B,G,R)7,9(B,G,R)8,9(B,G,R)9,9(B,G,R)

测试OpenCvSharp是否可以使用

使用读取图像函数读取本地图像,并显示
Cv2.ImRead();
在这里插入图片描述
根据函数介绍我们可以得知ImRead()有一个Mat类型的返回值,用于接收图像。
我们只需要提供一个文件路径即可(如果项目生成方式为Debug图片是放在项目的Debug路径下,可使用文件名进行读取)
例如:
在这里插入图片描述
然后使用Cv2.ImShow();Cv2.WaitKey();显示图像
在这里插入图片描述
在这里插入图片描述

Cv2.ImShow();需要填入一个窗口名称和图像变量
Cv2.WaitKey();让图像保持显示


using OpenCvSharp;

namespace 入门第一章
{
    class Program
    {
        static void Main(string[] args)
        {
			//读取图像
            Mat img = Cv2.ImRead("img/img.jpg");
            //显示图像
            Cv2.ImShow("img", img);
            Cv2.WaitKey();
        }
    }
}

执行显示


在这里插入图片描述
lena


以上都为自己理解整理的内容,可能存在误解

其他文章:
CSDN_MX C#计算两线交点
CSDN_MX 使用C#编写Sockets

查看主页了解更多内容
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

OpenCVSharp 入门 的相关文章

  • 1.5 万字 + 40 张图解 HTTP 常见面试题(值得收藏)

    作者 xff1a 小林coding 图解计算机基础网站 xff1a https xiaolincoding com 大家好 xff0c 我是小林 xff0c 我最开始写的第一篇图解文章就是这篇 xff1a 那时候我也就不到 100 读者 x
  • libcurl第七课 multipart/formdata表单使用

    场景 multipart form data是浏览器用表单上传文件的方式 最常见的情境是 xff1a 在写邮件时 xff0c 向邮件后添加附件 xff0c 附件通常使用表单添加 xff0c 也就是用multipart form data格式
  • 【测绘专用】中海达全站仪数据导入南方CASS

    先从全站仪导入数据到电脑 xff08 我是用U盘的 xff09 xff0c 然后打开数据文件后是这个样子 上图并不是导出后原先的数据格式 导出文件后 xff0c 它的数据格式实际上不是上面这样的 xff0c 要经过处理后才行 从中海达下载数
  • 广工 AnyviewC 数据结构习题 第二章

    广工 AnyviewC 数据结构习题 第二章 广工 AnyviewC 数据结构习题 第二章Anyview 数据结构 第二章1 题目 试写一算法 xff0c 实现顺序栈的判空操作2 题目 试写一算法 xff0c 实现顺序栈的取栈顶元素操作3
  • 广工 AnyviewC C语言习题 第六章

    Anyview 第六章 6 022 n是系统给定的外部变量 编写程序 xff0c 求1到n间的 自然数之和 请定义局部变量s存放求和的结果 xff0c 并用下 列语句输出结果 span class token function printf
  • 广工 AnyviewC C语言习题 第七章

    Anyview 第七章 习题7 010 写一函数求3个整数中最小的数 span class token keyword int span span class token function min span span class token
  • 广工 AnyviewC C语言习题 第十、十一章

    Anyview 第十 十一章 第十章 10 011 请编写一个函数func char s char t int n xff0c 由数组s中长度为n的字符序列构造其逆序列 xff0c 并存储在数组t中 例如 xff0c 由给定字符序列s 61
  • 【测绘专用】 MATLAB 四叉树分割遥感图像

    MATLAB 四叉树分割遥感图像 四叉树是遥感图像处理里面常用的一种算法 xff0c 我这里采用递归的方法来实现 数据处理的思路 对于图像矩阵 xff0c 我是判断它的方差是否小于某个阈值 xff0c 大于就继续分 xff0c 小于就不分
  • VS code配置latex美赛模板

    VS code配置latex美赛模板 首先要知道安装的latex版本是miktex还是texlive Miktex 我的是2 9的 解压模板文件 xff1a 用VScode打开上面红圈里的文件即可进行编辑 Texlive 打开 Tex Li
  • OkHttpUtils (OkHttpUtil工具类)

    public class OkHttpUtil static OkHttpUtil okHttpUtil private OkHttpClient Builder builder private Request Builder reques
  • C++经典类库(C++开发必看)

    现实中 xff0c C 43 43 的库门类繁多 xff0c 解决的问题也是极其广泛 xff0c 库从轻量级到重量级的都有 本文为你介绍了十一种类库 xff0c 有我们常见的 xff0c 也有不常见的 xff0c 一起来看 AD xff1a
  • libcurl第九课 Content-Length的添加机制

    场景 lt DOCTYPE HTML PUBLIC 34 W3C DTD HTML 4 01 EN 34 34 http www w3 org TR html4 strict dtd 34 gt lt HTML gt lt HEAD gt
  • 英伟达NX上使用 Python 硬解码ip摄像头h264视频流

    问题 用另一篇博客rtsp拉流的方法 xff0c 当单独拉流时 xff0c 不会出现任何问题 可是如果将拉流和检测算法结合 xff0c 就会出现断流 xff0c 花屏 xff0c 跳帧 xff0c 播放延迟 xff0c 播放速度卡顿等问题
  • http库

    当我们使用 Go 语言进行 Web 开发时 xff0c 不可避免地要使用到 http 包 该包提供了 HTTP 客户端和服务器的实现 xff0c 可以轻松地编写 HTTP 服务器和客户端 在本节中 xff0c 我们将学习如何使用 Go 语言

随机推荐

  • CMake链接静态库

    set CMAKE CXX STANDARD 14 include directories CMAKE SOURCE DIR include include directories CMAKE SOURCE DIR include rtk
  • 清晰解读C语言中的位域、字节序、比特序、大小端

    一 比特序 位序 比特序表示一个字节中8个比特位 xff08 bit xff09 之间的顺序问题 分为LSB 0 位序和MSB 0 位序 LSB least significant bit xff1a 数据的最低位存放在字节的第0位 MSB
  • swiper轮播图代码实例

    lt span class hljs constant DOCTYPE span html gt lt html gt lt head gt lt meta charset 61 span class hljs string 34 UTF
  • Ubuntu编译安装Node.js

    编译安装nodejs 1 wget c https nodejs org dist v6 9 1 node v6 9 1 tar gz 2 tar zxvf node v6 9 1 tar gz 3 cd node v6 9 1 4 con
  • node.js的post和get简单取值

    span class hljs reserved var span http 61 span class hljs built in require span span class hljs string 39 http 39 span s
  • php 判断是移动端还是pc端访问web页面

    function is mobile span class hljs variable user agent span 61 span class hljs variable SERVER span span class hljs stri
  • mongodb的where条件

    mongodb的where条件 1 比较条件 等于 db tian find span class hljs string 39 name 39 span span class hljs symbol span class hljs str
  • ZED相机的使用

    下面简要说明一下ZED双目相机的使用 1 开发环境搭建 首先zed的相机必须要nvidia显卡支持 xff0c 没有的同学可以洗洗睡了 xff0c 或者你可以拿来当普通相机用 首先安装cuda xff0c 再去zed官网下载对应cuda版本
  • libcurl第十一课 使用以及注意事项

    经验 1 xff09 配合Postman能够快速的生成例子代码 2 xff09 curl global init初始化 如果调用curl库函数的时候 xff0c 没有调用curl global init进行curl全局变量的初始化 xff0
  • 基于ROS的hector-slam使用Kinect V1建图

    距离值在ROS中被称为scan xff0c 并且姿态 xff08 位置 43 方向 xff09 信息会根据相对坐标关系而改变 xff0c 因此被称为tf xff08 transform xff09 一 建图实际操作 下载源码测试源码 xff
  • 下载Fiddler后不知从何下手?来看看怎么抓包抓接口吧

    1 Fiddler简介 Fiddler是位于客户端和服务器之间的一个代理 xff0c 类似于生活中厂家和客户之间的代理商或微商 2 Fiddler抓包实战 当打开Fiddler时 xff0c 便会自动开启代理服务器 xff0c 监听端口号抓
  • socket、select、poll、epoll实现TCP并发处理

    网络通信 常用网络通信接口大概四种 xff0c socket select poll epoll 使用socket实现服务器的并发处理 优点 xff1a 代码框架简单 缺点 xff1a 碍于内存的限制 xff0c 并发量不会大 xff0c
  • find_package opencv

    1 find package OpenCV 3 REQUIRED 通过OpenCV DIR变量寻找OpenCVConfig cmake文件 xff0c 默认在 usr share OpenCV中 set OpenCV DIR 34 34 指
  • 工业通讯领域的总线、协议、规范、接口、数据采集与控制系统

    一 工控安全 工控 xff0c 指的是工业控制自动化 xff0c 主要利用电气 机械 软件组合的方式实现 xff0c 即是工业控制系统 xff0c 或者是工厂自动化控制 工控安全指的是工业控制系统的数据 网络和系统安全 随着工业信息化的迅猛
  • Java Web 开发详解

    一 Web基础 1 Web 概述 Web 在英文中的含义是网状物 网络 在计算机领域 xff0c 它通常指的是后者 xff0c 即网络 像 WWW 是由 3 个单词组成的 xff0c 即World Wide Web xff0c 中文含义是万
  • 【无标题】amd卡顿,黑屏,解决办法

    amd黑屏几秒原因是日光灯启动 xff0c 空调冰箱压缩机启动后照成的 xff0c 这种情况是220v的电路和显示器的hdmi线相隔太近分开或者换dp也可以 amd卡顿几秒 cpu百分百 是amd显卡驱动设置问题 改游戏模式为标准就行了
  • 处理点云程序段错误process has died [pid 31695, exit code -11, cmd /home

    问题 xff1a 编写了一个处理点云的程序 编译全部通过 xff0c 播放点云bag包后运行程序时报错 xff1a plane fitter 1 process has died pid 31695 exit code 11 cmd hom
  • [ WARN] [1531227099.238940419]: MessageFilter [target=odom ]: Dropped 100.00% of messages so far. Pl

    执行roslaunch rplidar ros rplidar launch 报错信息 WARN 1531227099 238940419 MessageFilter target 61 odom Dropped 100 00 of mes
  • libcurl第十课 HTTPS交互

    场景 跟乐橙云访问 xff0c 需要使用HTTPS协议 额外配置 xff0c 否则执行返回CURLE UNSUPPORTED PROTOCOL错误 1 xff09 libcurl版本升级到7 61 0版本 2 xff09 libcurl项目
  • OpenCVSharp 入门

    OpenCVSharp 入门 了解对象和图像处理编程的开发人员应该能够轻松地学会如何使用OpenCVsharp 获得OpenCVSharp 要获得OpenCVSharp xff0c 要使用NuGet下载opencvsharp xff0c 它