c#机器学习之opencv(1)-opencvsharp显示图片与边缘提取

news2024/11/27 23:56:31

目录

    • Using块
      • 概念
      • using 添加到局部变量声明。
    • 安装opencvsharp
    • 显示图片
    • 边缘检测

Using块

概念

有时你的代码需要非托管的资源,如文件句柄、 COM 包装器或 SQL 连接。 一个Using块确保一个或多个此类资源的释放你的代码完成与之时。 这使它们可用于其他代码使用。
托管的资源释放由.NET Framework 垃圾回收器 (GC) 而无需您采取任何额外的编码。 不需要Using托管资源的块。 但是,仍可以使用Using块以强制释放托管资源而不是等待垃圾回收器。
一个Using块都有三个部分: 获取、 使用情况和可供使用。
获取意味着创建变量并将其初始化,以便向系统资源。 Using语句可以获取一个或多个资源,也可以在进入块之前获取恰好一个资源,其提供给Using语句。 如果你提供resourceexpression,必须在将控制权传递给之前获取资源Using语句。
使用情况意味着访问资源并使用它们执行操作。 之间表示资源的使用。
处置方法调用Dispose方法中的对象上resourcename。 这允许要明确终止其资源的对象。 End Using语句释放的资源下Using块的控件。

本地的生存期 using 将扩展到声明它的范围的末尾。

using 添加到局部变量声明。

if (...) 
{ 
   using FileStream f = new FileStream(@"C:\users\jaredpar\using.md");
   // statements
}

// Equivalent to 
if (...) 
{ 
   using (FileStream f = new FileStream(@"C:\users\jaredpar\using.md")) 
   {
    // statements
   }
}

然后,将 using 按声明的反向顺序来处理局部变量。

{ 
    using var f1 = new FileStream("...");
    using var f2 = new FileStream("..."), f3 = new FileStream("...");
    ...
    // Dispose f3
    // Dispose f2 
    // Dispose f1
}

安装opencvsharp

OpenCV是一个基于Apache2.0许可(开源)发行的跨平台计算机视觉和机器学习软件库,可以运行在Linux、Windows、Android和Mac OS操作系统上。 [1] 它轻量级而且高效——由一系列 C 函数和少量 C++ 类构成,同时提供了Python、Ruby、MATLAB等语言的接口,实现了图像处理和计算机视觉方面的很多通用算法。
安装方式如下:
在这里插入图片描述或者

PM>Install-Package OpenCvSharp4.Windows 

这是网址
https://www.nuget.org/packages/OpenCvSharp4.Windows/

显示图片

放一个按钮,然后输入以下代码,按下按钮后,显示图片。

using OpenCvSharp;

        private void button1_Click(object sender, EventArgs e)
        {
            var src = new Mat("test1.png", ImreadModes.Color);
            using (new Window("src image", src))
            {
                Cv2.WaitKey();
            }
        }

运行结果如下:
在这里插入图片描述

边缘检测

使用 cv2.Canny()来实现 Canny 边缘检测
在这里插入图片描述
代码如下

             var src = new Mat("test1.png", ImreadModes.Grayscale);
             var dst = new Mat();

            Cv2.Canny(src, dst, 50, 200);
            using (new OpenCvSharp.Window("src image", src))
            using (new OpenCvSharp.Window("dst image", dst))
            {
                Cv2.WaitKey();
            }
        }

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

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

一个新公众号怎么吸粉?教你几招

都说万事开头难,但我不觉得啊,关键是要找对方法! 企业和品牌创建初期都会经历公众号启动期,一个新公众号必将会经历艰难的涨粉阶段。 想必下面这两种情况你也深有体会: 即使每天坚持更新,但是后台文章阅读…

迷宫问题(只有一条路径)【dfs 判断是否继续dfs 的三种方法】

dfs、bfs的迷宫问题1. 迷宫问题&#xff08;只有一条路径&#xff09;dfs迷宫问题总结&#xff1a;三种dfs判断法三&#xff1a;1. List<类> 存储过程节点2. dfs的返回值是 boolendfs的结构是 if(合法)if(走到节点)return true&#xff1b;法一&#xff1a;1. 两个数组&a…

腾讯云数据库SaaS致力于构建数据库分布式云,为更多更广的用户提供服务

大数据时代&#xff0c;数据库 SaaS 是企业实现降本增效和业务创新的重要抓手。在腾讯全球数字生态大会数据库 SaaS 专场上&#xff0c;腾讯云发布了多项数据库 SaaS 产品能力升级&#xff0c;并重点分享了其在上云、日常运维、数据库迁移等多方面的实践应用&#xff0c;为广大…

手把手教你实现一个防抖函数(debounce)

前言&#xff1a;防抖函数在日常开发中属于是一个非常非常重要的知识点。通常在一个项目的最开始构建的时候&#xff0c;都会在 utils文件夹下备上这样一个函数&#xff0c;来为以后做准备。 &#xff08;tips&#xff1a;utils 在大部分翻译软件内好像都叫跑龙套的&#xff0c…

<数据库视图>--数据库的“眼镜”(世界杯例题篇),查阅必备

&#x1f468;‍&#x1f4bb;个人主页&#xff1a;元宇宙-秩沅 hallo 欢迎 点赞&#x1f44d; 收藏⭐ 留言&#x1f4dd; 加关注✅! 本文由 秩沅 原创 **收录于专栏 数据库干货铺 ⭐外模式—视图⭐ 文章目录⭐外模式---视图⭐一&#xff0c;概念提炼二&#xff0c;视图的创…

一文解决Linux Conntrack:为什么它会崩溃,如何避免这个问题

前言 连接跟踪&#xff08;“conntrack”&#xff09;是 Linux 内核网络栈的核心特性。它允许内核跟踪所有的逻辑网络连接或数据包流&#xff0c;从而识别组成每个流的所有数据包&#xff0c;以便能够统一的处理它们。 Conntrack 是一个重要的内核特性&#xff0c;它支撑了一…

mysql进阶学习 - concat函数

目录指导: 语法:作用:说明:实例说明:相关问题:语法: concat(str1, str2, ...)作用: 将多个字符串拼接成一个字符串 说明: 该函数中的参数至少有一个参数, 否则会报错;该函数在拼接之前会将所有的参数转换为字符串类型;该函数如果某个参数为NULL, 则返回NULL值. 实例说明: 说…

blender 烘焙贴图

文章目录烘焙基础色贴图查看烘焙结果图片保存图片烘焙其他类型的贴图烘焙法线贴图TexTools插件ID Map制作ID Map使用ID Map烘焙基础色贴图 1 只有CY渲染器可以烘焙贴图 2 首先在材质栏里创建一个新的图像纹理节点&#xff0c;不需要和任何节点连接&#xff0c;点击新建&#x…

gdb常用调试命令 + 多进程调试命令

要使用 gdb 调试&#xff0c;必须在gcc / g 生成执行文件时&#xff0c;加上 -g 选项&#xff0c;那么在生成的时候&#xff0c;就会在该执行文件中加入一些debug信息。 gcc -g -o test test.c 目录 1、常用调试命令 (1) 进入 / 退出调试模式 (2) 开始调试 2、多进程调试命…

mybatis学习:二、 Mybatis的Dao开发、mybatis-config.xml文件的详情

3. Mybatis的Dao开发 ​ 使用Mybatis开发Dao&#xff0c;通常有两个方法&#xff0c;即原始Dao开发方法和Mapper接口开发方法。 3.1 Mybatis的核心对象 SqlSessionFactoryBuilder ​ SqlSessionFactoryBuilder用于创建SqlSessionFacoty&#xff0c;SqlSessionFacoty一旦创建完…

nginx学习使用

nginx学习使用一、nginx安装与使用1、linux安装2、linux卸载3、升级4、linux环境下&#xff0c;把nginx设置为开启自启动二、nginx常用命令1、部署命令2、其他命令三、配置文件解析1、系统配置2、各配置指令详解3、日志配置4、跟据上面的命令&#xff0c;实现一个代理配置案例5…

2022FW柯罗芭KLOVA 用极简主义演绎服装美学

万物伊始&#xff0c;一切都是最简单的&#xff0c;后疫情时代&#xff0c;时尚似乎也开始化繁为简&#xff0c;回归本真。LESS IS MORE 诉说着真实的高贵&#xff0c;从不喧哗&#xff0c;服装里讲究的极简风&#xff0c;正是当下时尚和生活方式的最佳体现。 款式极简 极简又高…

Spring Boot中添加Thymeleaf模板

Spring Boot中添加Thymeleaf模板 前面我们讲解了Spring Boot项目的创建、Spring Boot结构信息&#xff0c;自动配置功能等&#xff0c;那么Springboot创建出来&#xff0c;我们最终是要做web开发的&#xff0c;所以我们这章讲解如何用SpringBoot做web开发。 一. Web开发方式 …

Maven 高级篇,Maven常用操作、高级操作、nexus私服搭建

&#x1f600;&#x1f600;&#x1f600;创作不易&#xff0c;各位看官点赞收藏. Maven 高级篇 文章目录Maven 高级篇1、Maven 安装2、Maven 核心概念2.1、坐标2.2、基础操作2.3、依赖2.4、继承2.5、生命周期3、Maven 深入3.1、Spring Boot 打包3.2、超级 POM3.3、build 标签…

计算机网络第八章知识点回顾(自顶向下)

1. 网络安全 1.1 什么是网络安全&#xff1f; 1.2网络中的通信安全 1.2.1 安全攻击的类型&#xff1a;被动攻击 1.2.2 安全攻击的类型&#xff1a;主动攻击 1.3 常见的安全机制 2. 密码学术语 2.1 密码学术语&#xff08;图示&#xff09; 2.2加密算法的分类 2.3 传统加密方法&…

专访D-Wave CEO:量子计算的过去、现在和未来

&#xff08;图片来源&#xff1a;网络&#xff09; 量子计算可能成为一项颠覆性技术&#xff1a;它建立在听起来非常奇特的物理学基础上&#xff0c;并有望以前所未有的速度和效率解决某些类别的问题。一些人认为&#xff0c;目前在量子计算领域的承诺太多&#xff0c;交付却不…

【wms平台化】一个简单的wms九表架构

仓库管理软件的未来有几个方向&#xff1a;平台化、行业化、一体化、精简化。 然而其中行业化跟精简化&#xff0c;其实都离不开平台化。 也就是说&#xff0c;不论wms软件如何发展&#xff0c;唯有平台化一择。 在本人从事的传统型wms项目中&#xff0c;对于库存的定义是【在…

ch1_系统启动_setup.S

1 功能分析 大写的.s 后缀名&#xff0c; 是为了说明是一个16位&#xff0c; 实模式下的汇编语言&#xff0c; 小写的 s 是保护模式下的汇编语言&#xff1b; 1.1 使用中断&#xff0c;读取机器参数 setup.S 是一个操作系统的加载程序&#xff0c; 主要作用使用 ROM BIOS 中…

我为什么拒绝了一个5年测开经验的候选人

某互联网大厂的测试开发岗位招聘时&#xff0c;收到一位 5 年测试开发经验的候选人&#xff0c;是南京大学软件学院的硕士&#xff0c;毕业后一直在国内的互联网巨头公司从事测试框架和工具平台的开发工作。 他简历中参与开发过的测试框架和工具和当时该公司在做的项目很匹配&…

一. 编程规则

命名风格 1.不能以下划线或美元符号开头或结尾,不许使用中英文混合的模式命名. 2.必须使用驼峰命名,DO/BO/DTP/Vo/AO例外 3.常量名全部大写,单词用下划线隔开 4.抽象命名使用Abstract或Base开头,异常命名使用Exception结尾,测试类以Test结尾,枚举类名带上Enum后缀,枚举成员…