C# 使用OpenCV基本图像操作功能

这篇具有很好参考价值的文章主要介绍了C# 使用OpenCV基本图像操作功能。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

C# 使用OpenCV

OpenCV是一个开源的跨平台计算机视觉和机器学习软件库,可以运行在Linux、Windows、Android和Mac OS操作系统上。C#在上位机开发中比较常用,有些项目需要在上位机上加入一些机器视觉相关的功能,在下面简单介绍了C#中使用OpenCV库的方法。

安装OpenCV包

在管理NuGet包中,搜索OpenCvSharp4,安装三个包,OpenCV在Net平台的核心包OpencvSharp4,windows平台运行包OpenCvSharp4.runtime.win,扩展包OpenCvSharp4.Extensions

三个包的介绍:

  1. OpencvSharp4 :.NET 的 OpenCV 包装器。 由于此包仅包含核心托管库,因此需要另一个适用于您操作系统的本机绑定包 (OpenCvSharp4.runtime.*)。
  2. OpenCvSharp4.runtime.win:OpenCvSharp 的内部实现包,可在 UWP 以外的 Windows 上运行。
  3. OpenCvSharp4.Extensions :OpenCvSharp GDI+ 扩展库。
    c# opencv 图像识别,opencv,c#,计算机视觉注意:net framework需要4.8才能支持
    c# opencv 图像识别,opencv,c#,计算机视觉

图片操作

Mat类

Mat是OpenCV中一个非常重要的类,它用于存储和操作图像像素数据,图像读写和处理都要用到Mat类。

图片读入

使用Mat Cv2.ImRead(string fileName, ImreadModes flags = ImreadModes.Color)读入图片

参数:

fileName:图片路径

flags :图片读入模式,默认Color(3 通道 BGR 彩色图像)

返回值:

Mat类型:用于存储和操作图像像素数据

示例:

Mat image = Cv2.ImRead("image.jpg");

图片读入模式

ImreadModes是指定加载图像的颜色和深度的枚举,他可选的类型如下:

    [Flags]
    public enum ImreadModes
    {
        //
        // 摘要:
        //    如果设置,则按原样返回加载的图像(带 alpha 通道,否则会被裁剪)。
        Unchanged = -1,
        //
        // 摘要:
        //   如果设置,总是将图像转换为单通道灰度图像。
        Grayscale = 0x0,
        //
        // 摘要:
        //     如果设置,总是将图像转换为 3 通道 BGR 彩色图像。
        Color = 0x1,
        //
        // 摘要:
        //   如果设置,当输入具有相应的深度时返回16位/32位图像,否则将其转换为8位。
        AnyDepth = 0x2,
        //
        // 摘要:
        //     如果设置,图像将以任何可能的颜色格式读取。
        AnyColor = 0x4,
        //
        // 摘要:
        //     如果设置,则使用 gdal 驱动程序加载图像。
        LoadGdal = 0x8,
        //
        // 摘要:
        //     如果设置,总是将图像转换为单通道灰度图像,图像尺寸缩小 1/2。
        ReducedGrayscale2 = 0x10,
        //
        // 摘要:
        //     如果设置,总是将图像转换为 3 通道 BGR 彩色图像并且图像尺寸减小 1/2。
        ReducedColor2 = 0x11,
        //
        // 摘要:
        //     如果设置,总是将图像转换为单通道灰度图像,图像尺寸缩小 1/4。
        ReducedGrayscale4 = 0x20,
        //
        // 摘要:
        //     如果设置,总是将图像转换为 3 通道 BGR 彩色图像并且图像尺寸缩小 1/4。
        ReducedColor4 = 0x21,
        //
        // 摘要:
        //       如果设置,总是将图像转换为单通道灰度图像,图像尺寸缩小 1/8。
        ReducedGrayscale8 = 0x40,
        //
        // 摘要:
        //    如果设置,总是将图像转换为 3 通道 BGR 彩色图像并且图像尺寸减小 1/8。
        ReducedColor8 = 0x41,
        //
        // 摘要:
        //     如果设置,则不根据 EXIF 的方向标志旋转图像。
        IgnoreOrientation = 0x80
    }

图像显示

  1. 在新的窗口中显示图像

使用Cv2.ImShow(string winName, Mat mat)打开一个窗口显示图像

winName:窗体名称

mat:Mat类,存储的图像数据

  Cv2.ImShow("test", mat);
  1. 关闭图像

Cv2.DestroyWindow(string winName)关闭对应的图像窗口

winName:要关闭的窗体名称

Cv2.DestroyWindow("test");

3.关闭所有图像窗口

Cv2.DestroyAllWindows() 关闭所有显示图像的窗口

 Cv2.DestroyAllWindows();

图像写入

使用Cv2.ImWrite(string fileName, Mat img, int[]? prms = null)进行写入

fileName:文件名

img:写入的文件对象,Mat类型文章来源地址https://www.toymoban.com/news/detail-609731.html

    Cv2.ImWrite("test2.png", mat);

到了这里,关于C# 使用OpenCV基本图像操作功能的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包 赞助服务器费用

相关文章

  • C#使用OpenCv(OpenCVSharp)图像处理实例:亮度、对比度、灰度

    本文实例演示C#语言中如何使用OpenCv(OpenCVSharp)对图像进行亮度、对比度、灰度处理。 目录 亮度和对比度原理 灰度 实例 图像亮度通俗理解便是图像的明暗程度,数字图像 f(x,y) = i(x,y) r(x, y) ,如果灰度值在[0,255]之间,则 f 值越接近0亮度越低,f 值越接近255亮度越

    2024年02月13日
    浏览(76)
  • C# - Opencv应用(2) 之矩阵Mat使用[矩阵创建、图像显示、像素读取与赋值]

    C# - Opencv应用(2) 之矩阵Mat使用[矩阵创建、图像显示、像素读取与赋值] 矩阵创建 图像显示与保存 像素读取与赋值 新建sample02项目,配置opencv4相关包,新建 .cs 进行测试 两种常用的图像遍历方式 灰度图操作 三通道图操作 完整代码

    2024年02月03日
    浏览(48)
  • Baumer工业相机堡盟工业相机如何使用OpenCV实现相机图像的显示(C#)

    ​ Baumer工业相机堡盟相机是一种高性能、高质量的工业相机,可用于各种应用场景,如物体检测、计数和识别、运动分析和图像处理。 Baumer的万兆网相机拥有出色的图像处理性能,可以实时传输高分辨率图像。此外,该相机还具有快速数据传输、低功耗、易于集成以及高度

    2024年01月19日
    浏览(42)
  • c# opencv 找到图像的轮廓,并绘制轮廓

    原图                                                                                结果图                                                                  本意是想去除白色图像周边的几个白色小点,得到轮廓图后,其他都设置为黑色,结果是白点更明

    2024年02月13日
    浏览(89)
  • 【旧文更新】【优秀毕设】人脸识别打卡/签到/考勤管理系统(OpenCV+最简基本库开发、可移植树莓派 扩展网络图像推流控制 验证码及Excel邮件发送等功能)

    【旧文更新】【优秀毕设】人脸识别打卡/签到/考勤管理系统(OpenCV+最简基本库开发、可移植树莓派 扩展网络图像推流控制 验证码及Excel邮件发送等功能) 为何要进行旧文新发? 因为我在2023年博客之星评选中发现 有的人转载、抄袭他人文章 稍微改动几下也能作为高质量文

    2024年02月20日
    浏览(65)
  • OpenCV基本图像处理操作(一)——图像基本操作与形态学操作

    图像显示 转hsv图像 颜色表示为三个组成部分:色调(Hue)、饱和度(Saturation)和亮度(Value)。常用于图像处理中,因为它允许调整颜色的感知特性,如色彩和亮度,这些在RGB颜色模型中不那么直观。 HSV模型特别适用于任务如图像分割和对象追踪,因为它可以更好地处理光

    2024年04月22日
    浏览(89)
  • OpenCV基本操作——图像的基础操作

    注:opencv图像坐标系中,左上角是原点,y轴向下,x轴向右,单位像素点 有时需要在B,G,R通道图像上单独工作。在这种情况下,需要将BGR图像分割成单个通道。或者在其他情况下,可能需要将这些单独的通道合并到BGR图像 opencv中有150多种颜色空间转换方法。最广泛使用的转

    2024年02月13日
    浏览(97)
  • 【笔记】OpenCV图像基本操作

    目录 一、图像属性 1.1图像格式 1.2图像尺寸 1.3图像分辨率和通道 1.4图像直方图 1.5图像颜色空间 二、基本操作 2.1 图像读取 cv2.imread() 2.2 图像的显示 cv2.imshow() 2.3 图像的保存 cv2.imwrite() 2.4 用matplotlib显示图像 plt.imshow() 2.5 视频读取 cv2.VideoCapture() 2.6 图像截取、颜色通道提取

    2024年02月03日
    浏览(505)
  • Opencv+Python图像基本操作

    目录 图像的读取、显示和保存 获取图像属性  图像截取  绘图功能 画线 画矩形 画圆圈 画椭圆          画多边形 向图像添加文本 cv2.imread() ,  cv2.imshow() ,  cv2.imwrite()分别表示读取图片,显示图片,写入图片   retval = cv2.imread(文件名 [,显示控制参数]) cv2.IMREAD_UNCHANGED:不改

    2024年02月04日
    浏览(55)
  • opencv学习(一)图像的基本操作

    cv2.IMREAD_COLOR:彩色图像 cv2.IMREAD_GRAYSCALE:灰度图像 cv2.imread()读取图片,当括号里面是 1 时,也就是替代了cv2.IMREAD_COLOR,得到 彩色图 。 cv2.imread()读取图片,当括号里面是 0 时,替代了cv2.IMREAD_GRAYSCALE,得到 灰度图 。 cv.inshow()函数为创建一个展示窗口,括号里面分别为 图片名字

    2024年02月05日
    浏览(122)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包