当前位置: 首页 > news >正文

C# 使用 OpenCV 基础

一、C#安装OpenCV

在这里插入图片描述
在这里插入图片描述
安装上面两个模块

二、使用

  1. 导入
using OpenCvSharp;
  1. 加载图片
// 导入图片
Mat image = Cv2.ImRead(@"C:\x5.bmp");
// 拷贝
Mat image2 = image.Clone();// 打开窗口
Cv2.NamedWindow("image", WindowFlags.AutoSize);
// 显示图片
Cv2.ImShow("image", image);// 如果闪退写入下方代码
Cv2.WaitKey(0);

三、图片预处理

  1. 腐蚀
Mat dstimage = new Mat();
Cv2.NamedWindow("dstimage", WindowFlags.AutoSize);
// 腐蚀
Mat elem = Cv2.GetStructuringElement(MorphShapes.Cross, new Size() { Width = 10, Height = 10 });
Cv2.Erode(image, dstimage, elem);
Cv2.ImShow("dstimage", dstimage);
  1. 膨胀
Cv2.Dilate(image, dstimage, elem);
Cv2.ImShow("dstimage", dstimage);
  1. 开运算
Cv2.MorphologyEx(image, dstimage, MorphTypes.Close, elem);
Cv2.ImShow("dstimage", dstimage);
  1. 闭运算
Cv2.MorphologyEx(image, dstimage, MorphTypes.Open, elem);
Cv2.ImShow("dstimage", dstimage);
  1. 进行均值滤波处理
Cv2.NamedWindow("dstimage", WindowFlags.AutoSize);
Cv2.Blur(image, dstimage, new Size() { Width = 10, Height = 10 });
Cv2.ImShow("dstimage", dstimage);

四、保存图片

Cv2.ImWrite(@"C:\001.bmp", image);

五、关闭窗口释放资源

Cv2.DestroyAllWindows();

六、边缘化

  1. 处理x方向的梯度
Mat gart_x = new Mat();
Mat abs_gart_x = new Mat();
// 输入图片, 输出图片, 处理的格式 16位有符号, 1.0 x方向的处理倒数
Cv2.Sobel(image, gart_x, MatType.CV_165, 1, 0);
// 对图片进行高亮处理
Cv2.ConvertScaleAbs(gart_x, abs_gart_x);
Cv2.ImShow("x方向", abs_gart_x);
  1. 处理y方向
Mat gart_y = new Mat();
Mat abs_gart_y = new Mat();Cv2.Sobel(image, gart_y, MatType.CV_165, 0, 1);
// 对图片进行高亮处理
Cv2.ConvertScaleAbs(gart_y, abs_gart_y);
Cv2.ImShow("x方向", abs_gart_y);
  1. 合并 x 和 y
Mat dst = new Mat();
// x的图像, x图像的权重, y的图像, y图像的权重
Cv2.AddWeighted(abs_gart_x, 0.5, abs_gart_y, 0.5, 0, dst);
Cv2.ImShow("合并", dst);

七、图片转换

  1. 灰度图
Mat grayImage = new Mat();
Cv2.CvtColor(image, grayImage, ColorConversionCodes.BGR2GRAY);
Cv2.ImShow("灰度图", grayImage);

相关文章:

C# 使用 OpenCV 基础

一、C#安装OpenCV 安装上面两个模块 二、使用 导入 using OpenCvSharp;加载图片 // 导入图片 Mat image Cv2.ImRead("C:\x5.bmp"); // 拷贝 Mat image2 image.Clone();// 打开窗口 Cv2.NamedWindow("image", WindowFlags.AutoSize); // 显示图片 Cv2…...

如何解决全局或静态变量被修改的bug

问题卡死 程序原来设置Firware name 时N32G475,在程序运行时,程序崩溃,发现输出的固件名称没有了,这里说明固件名称被程序修改了 程序在开机时都是对的 打开map文件查找fw_name的内存地址,他的值被更改,就…...

[Java实战]Spring Boot整合Sentinel:流量控制与熔断降级实战(二十九)

[Java实战]Spring Boot整合Sentinel:流量控制与熔断降级实战(二十九) 一、Sentinel简介 Sentinel是阿里开源的分布式系统流量防卫组件,核心功能包括: 流量控制:根据QPS、线程数等指标限制资源访问熔断降…...

Linux系统中,Ctrl+C的运行过程是什么?

文章目录 前言1.终端驱动捕获键盘输入2.信号发送到前台进程组3. 进程处理信号4. 信号传递的详细流程5. Shell 的后续处理关键机制说明扩展:其他相关信号总结 前言 今天看到有个小伙伴面试问到这个问题,感觉挺有意思,我们后端开发者相信都用过…...

101个α因子#9

((0 < ts_min(delta(close, 1), 5)) ? delta(close, 1) : ((ts_max(delta(close, 1), 5) < 0) ? delta(close, 1) : (-1 * delta(close, 1))))worldquant brain平台上调整后的语法&#xff1a; ((0 < min(close-ts_delay(close, 1), ts_delay(close, 1)-ts_delay(c…...

DAY28 超大力王爱学Python

知识点回顾&#xff1a; 类的定义pass占位语句类的初始化方法类的普通方法类的继承&#xff1a;属性的继承、方法的继承 作业 题目1&#xff1a;定义圆&#xff08;Circle&#xff09;类 import mathclass Circle:def __init__(self, radius1):self.radius radius # 半径属性…...

【C++算法】70.队列+宽搜_N 叉树的层序遍历

文章目录 题目链接&#xff1a;题目描述&#xff1a;解法C 算法代码&#xff1a; 题目链接&#xff1a; 429. N 叉树的层序遍历 题目描述&#xff1a; 解法 使用队列层序遍历就可以了。 先入根节点1。queue&#xff1a;1 然后出根节点1&#xff0c;入孩子节点2&#xff0c;3&a…...

常用UI自动化测试框架

&#x1f50d; 常用UI自动化测试框架全览&#xff08;Web / 移动 / 桌面 / AI驱动&#xff09; UI&#xff08;用户界面&#xff09;测试框架是一类用于自动化测试应用图形界面的工具&#xff0c;帮助开发者和测试人员验证界面元素的功能性、交互性和视觉一致性。本文系统梳理了…...

C语言指针深入详解(五):回调函数、qsort函数

目录 一、回调函数 1、使用回调函数改造前 2、使用回到函数改造后 二、qsort使用举例 1、使用qsort函数排序整型数据 2、使用qsort排序结构数据 三、qsort函数模拟实现 结语 &#x1f525;个人主页&#xff1a;艾莉丝努力练剑 &#x1f353;专栏传送门&#xff1a;《…...

# YOLOv5:目标检测的新里程碑

YOLOv5&#xff1a;目标检测的新里程碑 在计算机视觉领域&#xff0c;目标检测一直是研究的热点和难点之一。近年来&#xff0c;随着深度学习技术的飞速发展&#xff0c;目标检测算法也取得了显著的进步。YOLO&#xff08;You Only Look Once&#xff09;系列算法以其高效的实…...

beanstalk一直被重新保留(reserved 状态)消息删除

说明&#xff1a;wallet是我的tube 完整流程示例 暂停 tube&#xff08;防止任务被重新保留&#xff09;pause-tube wallet 300踢回并删除任务kick 100000 # 踢回所有 reserved 任务 delete 183723 # 删除目标任务恢复 tube&#xff08;取消暂停&#xff09;pause-tu…...

NLP学习路线图(二): 概率论与统计学(贝叶斯定理、概率分布等)

引言 自然语言处理&#xff08;NLP&#xff09;作为人工智能的重要分支&#xff0c;致力于让机器理解、生成和操作人类语言。无论是机器翻译、情感分析还是聊天机器人&#xff0c;其底层逻辑都离不开数学工具的支持。概率论与统计学是NLP的核心数学基础之一&#xff0c;它们为…...

塔能智能照明方案——贵州某地区市政照明改造实践

在城市市政建设中&#xff0c;照明系统作为城市基础设施的重要组成部分&#xff0c;其能耗问题日益凸显。传统市政照明设备能耗高、运维效率低&#xff0c;成为城市绿色发展的阻碍。塔能科技针对这一痛点&#xff0c;为贵州某地区量身打造智能照明改造方案&#xff0c;通过技术…...

Mybatis的逆向工程Generator

Mybatis的逆向工程 什么是逆向工程 generator 简单点说&#xff0c;就是通过数据库中的单表&#xff0c;自动生成java代码。 Mybatis官方提供了逆向工程&#xff0c;可以针对单表自动生成mybatis代码&#xff08;mapper.java\mapper.xml\po类&#xff09; 企业开发中&#…...

Runtime Suspend 专项训练

Q1. 什么是 Runtime PM&#xff1f;与 System Suspend 有什么区别&#xff1f; 答&#xff1a; Runtime PM&#xff08;运行时电源管理&#xff09;是 Linux 内核为单个设备提供的自动挂起机制。其核心思想是在设备空闲期间&#xff0c;关闭其时钟、电源、总线连接等资源&…...

香港科技大学(广州)智能制造理学硕士招生宣讲会——深圳大学专场

深圳大学专场宣讲会 时间&#xff1a;5月22日&#xff08;星期四&#xff09;19:00-20:00 地点&#xff1a;深圳大学沧海校区致原楼1101 ‍&#x1f393;主讲嘉宾&#xff1a; 汤凯 教授 https://facultyprofiles.hkust-gz.edu.cn/faculty-personal-page/TANG-Kai/mektang …...

使用MacPro 安装flutter开发环境 详细教程

Mac 有 英特尔芯片 和 苹果芯片&#xff0c;故安装路径可能略有不同&#xff0c;但是思路 大致一样&#xff0c;以下内容仅供小伙伴们参考&#xff1a; 首先下载环境安装的软件&#xff0c;并推荐使用稳定版本。 gralde 8.5 点击下载 android studio 点击下载 jdk 点击下载…...

常见的 API 及相关知识总结

常见的 API 及相关知识总结 一、Math 类 Math 类提供了许多用于数学计算的静态方法和常量。 常见方法总结 方法描述Math.abs()返回一个数的绝对值Math.ceil()返回大于或等于给定数字的最小整数Math.floor()返回小于或等于给定数字的最大整数Math.round()对一个数进行四舍五…...

7-Zip软件下载与使用攻略:如何使用7z格式解压缩更高效?

在数字化文件管理中&#xff0c;压缩与解压缩工具的选择至关重要。7-Zip是一款广受欢迎的开源软件&#xff0c;以其高效的压缩率和多种格式支持而备受推崇。然而&#xff0c;解压专家作为另一款优秀的解压缩软件&#xff0c;同样值得关注。本文将为您推荐7-Zip的下载渠道&#…...

第 84 场周赛:翻转图像、字符串中的查找与替换、图像重叠、树中距离之和

Q1、[简单] 翻转图像 1、题目描述 给定一个 n x n 的二进制矩阵 image &#xff0c;先 水平 翻转图像&#xff0c;然后 反转 图像并返回 结果 。 水平翻转图片就是将图片的每一行都进行翻转&#xff0c;即逆序。 例如&#xff0c;水平翻转 [1,1,0] 的结果是 [0,1,1]。 反转…...

SkyReels-V2:开启无限时长电影生成新时代

AI 在视频生成领域的突破尤为引人注目&#xff0c;为内容创作带来了全新的可能性。而 SkyReels-V2 的问世&#xff0c;更是如同一场革命&#xff0c;彻底颠覆了人们对视频生成技术的认知&#xff0c;开启了无限时长电影生成的新时代。 一、背景与挑战 回顾视频生成技术的发展…...

教师可用的申报书——基于GAI的小学数学课堂跨学科支架设计与实践

课题申报书:基于GAI的小学数学课堂跨学科支架设计与实践 (一)立项依据与研究内容 1. 项目的立项依据 1.1 研究意义 2025年《教育强国建设规划纲要》明确提出“推动学科融合发展”,《信息化标准建设行动计划(2024-2027年)》强调技术赋能教育创新。小学数学作为基础学科,…...

79、modelsim单独仿真altera带IP核的文件

1.编译 quartus 仿真库&#xff08;如果有就不用编译了&#xff09; ​ ​ ​ 编译完成后 sim 文件夹中产生一个 verilog_libs 文件夹,打开文件夹 ​ ​ 以上便是编译产生的库&#xff0c;将库添加到 modelsim 中也就是观察此文件中的 modelsim.ini 与 modelsim 安装目录下此…...

将 Workbook 输出流直接上传到云盘

如果不想将 Excel 文件保存到本地&#xff0c;而是希望直接将输出流上传到云存储&#xff08;如阿里云OSS、腾讯云COS、七牛云等&#xff09;&#xff0c;可以采用以下方法&#xff1a; 文章目录 1. 创建内存中的 Excel 输出流2. 上传到云存储的通用方法3. 具体云服务实现示例…...

【LINUX操作系统】日志系统——自己实现一个简易的日志系统

经过一段时间的操作系统的学习&#xff0c;现在是时候让读者朋友们利用学过的技术知识自己完成一个简单的日志系统。认识、了解日志系统既是对已有多线程知识的运用&#xff0c;也是进一步提升项目技术能力的必须步骤。 1. 什么是日志 ⽇志认识 计算机中的⽇志是记录系统和软件…...

HTML页面渲染过程

前言 文章很长&#xff0c;凡是我觉得好的东西统统都塞进来了。看了很多的文章&#xff0c;有些说法甚至都不统一&#xff0c;所以还动用了AI搜索。总之希望这篇文章能有点用&#xff0c;如有错误&#xff0c;欢迎指正。 浏览器介绍 浏览器的主要组件包括&#xff1a; 界面…...

【八股战神篇】Java虚拟机(JVM)高频面试题

目录 专栏简介 一 请解释Java虚拟机&#xff08;JVM&#xff09;及其主要功能 延伸 1. JVM的基本概念 2. JVM的主要功能 二 对象创建的过程了解吗 延伸 1.Java 创建对象的四种常见方式 三 什么是双亲委派模型 延伸 1.双亲委派机制的作用&#xff1a; 2.双亲委派模型…...

微店商品详情接口开发指南

接口概述 微店商品详情接口&#xff08;/api/v1/product/detail&#xff09;用于获取商品的完整信息&#xff0c;包括标题、价格、库存、SKU、主图等数据&#xff0c;支持OAuth2.0鉴权。 点击获取key和secret 请求方式 GET https://open.weidian.com/api/v1/product/detail …...

拦截指定注解(FeignClient),补偿重试

拦截指定注解&#xff08;FeignClient&#xff09;&#xff0c;补偿重试&#xff1b;对代码无入侵 避免正常调用和重试逻辑调用重复插入&#xff1b; 根据自己的业务需求 插入新数据时 是否需要删除之前的旧数据&#xff0c;防止数据覆盖 import cn.hutool.core.util.ObjectUti…...

使用 GitHub Pages 部署单页面应用教程

## 简介 GitHub Pages 是 GitHub 提供的一个静态网站托管服务&#xff0c;可以免费托管个人、项目或组织页面。本教程将指导您如何部署一个单页面应用到 GitHub Pages。 ## 前提条件 - 拥有 GitHub 账号 - 已安装 Git - 已安装 Node.js&#xff08;如果使用前端框架&#x…...

day16-17-磁盘管理

1. 磁盘分类 磁盘接口 硬盘 大小 sata接口 机械硬盘、固态硬盘 机械&#xff1a;4tb 10k性能要求不高 sas接口 机械硬盘、固态硬盘 机械&#xff1a;900G 15k性能好&#xff0c;容量低 pcie-e接口 固态硬盘 tb级别 4tb 8tb 性能要求高&#xff0c;数据库&#xff0c…...

【神经网络与深度学习】扩散模型之通俗易懂的解释

引言&#xff1a; 扩散模型&#xff08;Diffusion Models&#xff09;是近年来深度学习领域的一项重要突破&#xff0c;尤其在生成式人工智能&#xff08;Generative AI&#xff09;中展现了惊人的能力。它的核心思想类似于一个孩子学习搭建乐高城堡的过程——先拆散&#xff0…...

Linux Bash 中 $? 的详细用法

Bash (Bourne Again SHell) 是使用最广泛的 SHell 脚本语言之一&#xff0c;因为它与 Unix 和 Linux 系统兼容。它提供了许多内置函数和变量&#xff0c;使脚本编写更高效&#xff0c;更不容易出错。其中一个变量是 $?&#xff0c; 它是 Bash 脚本错误处理的一个组成部分。这个…...

嵌入式培训之系统编程(一)标准IO、文件操作

目录 一、系统编程概述 二、标准IO &#xff08;一&#xff09;&#xff08;以计算机为中心&#xff09;标准IO &#xff08;二&#xff09;io的分类 &#xff08;三&#xff09;man命令 三、文件读写操作 &#xff08;一&#xff09;文件操作步骤 &#xff08;二&#…...

NVIDIA Earth-2 AI 天气模型 DLI 课程:解锁全球风云的未来之匙

电影闲聊引发思索之言&#xff1a; 曾几何时&#xff0c;当我们闲聊起那些描绘美国气候的大电影时&#xff08;龙卷风-后天等美国大片&#xff09;&#xff0c;仿佛被带入了一个个奇幻而真实的气象世界。从狂风暴雨到烈日炎炎最后到冰天雪地&#xff0c;电影里的场景让我们对气…...

至此(day1-day4)代码详解(ai辅助整理)

至此&#xff08;day1-day4&#xff09;代码详解 ipl10.nas ; 第一阶段引导程序 ; 功能&#xff1a;读取磁盘数据并跳转到第二阶段加载程序 ; 编译参数&#xff1a;nask -o ipl10.bin ipl10.nasCYLS EQU 10 ; 预设读取柱面数&#xff08;实际值由BIOS决定&#xff09;ORG…...

STM32F103_LL库+寄存器学习笔记12.2 - 串口DMA高效收发实战2:进一步提高串口接收的效率

导言 通过优化代码算法&#xff0c;在串口空闲中断回调里不需要暂时关闭DMA接收&#xff0c;达到提高串口接收的效率。在IDLE接收中断里关闭DMA接收会导致接收过程中有数据丢失风险&#xff08;关DMA的瞬间如果有数据到来&#xff0c;会丢帧&#xff01;&#xff09;。 回顾一…...

conda 设置env后,环境还是安装在c盘的解决方式:

1|设置 envs 文件夹权限 右键【envs】文件夹&#xff0c;选择【属性】 选择【安全】&#xff0c;点击【编辑】 选中【Users(用户名\Users)】&#xff0c;选中运行所有权限&#xff0c;如图所示 点击【确认】&#xff0c;确保修改被保存 2、环境变量path设置 选择【高级系统设置…...

设计模式 - 工厂模式

简单工厂模式 public class CoffeeFactory {public Coffee get(string coffeeType) {Coffee coffee null;if ("American".equals(coffeeType)) {coffee new AmericanCoffee();} else if ("Latte".equals(coffeeType)) {coffee new LatteCoffee();}retur…...

动态规划-LCR 090.打家劫舍II-力扣(LeetCode)

一、题目解析 本题与打家劫舍的最大区别在于房子不是线性分布的了&#xff0c;而是首尾相连的环形分布&#xff0c;即如果偷了第一间房子&#xff0c;那么最后一间房子就不能偷了&#xff0c;因为它们是相连的。 二、算法原理 在分析之前我们可以先讨论上面提到的第一间房子偷…...

2025 年暑假 LBE 大空间市场火爆程度预测:技术驱动与消费升级下的增长引擎

一、市场爆发的底层逻辑 根据 DeepSeek 行业报告显示&#xff0c;2025 年 LBE 大空间市场将呈现结构性爆发&#xff0c;核心驱动力来自三大技术突破&#xff1a; 空间计算能力跃迁&#xff1a;上海移动已开通全球最大规模商用 5G-A 3CC 网络&#xff0c;主城区及十大重点场景…...

【AI 大模型】盘古大模型简介 ( 创建空间 | 体验模型 | 部署模型 )

文章目录 一、盘古大模型简介1、创建空间2、体验模型3、部署模型 总结 : 盘古大模型 是 开发部署 盘古基础模型 , 或 在 盘古模型 基础上进行 微调训练 的 大模型 的平台 , 是 开发训练 大模型的平台 ; 不适合 中小企业 和 个人开发者 开发 大模型应用 ; 一、盘古大模型简介 1、…...

2025年护网行动蓝队防御全解析:构建智能动态防御体系

2025年&#xff0c;随着网络攻击手段的智能化、混合化升级&#xff0c;护网行动中的蓝队防御已从传统的被动防护转向“动态感知、智能研判、主动反制”的立体化模式。如何在攻防不对称的对抗中实现“看得见、防得住、溯得清”&#xff1f;本文将结合前沿技术与实战经验&#xf…...

【Java高阶面经:微服务篇】3.熔断机制深度优化:从抖动治理到微服务高可用架构实战

一、熔断抖动的本质剖析与核心成因 1.1 熔断机制的核心价值与抖动危害 熔断机制作为微服务弹性架构的核心组件,通过模拟电路断路器逻辑,在服务出现异常时自动阻断请求链,防止故障扩散引发雪崩。但频繁的“熔断-恢复-熔断”抖动会导致: 用户体验恶化:请求成功率波动大,响…...

HTML回顾

html全称:HyperText Markup Language(超文本标记语言) 注重标签语义,而不是默认效果 规则 块级元素包括: marquee、div等 行内元素包括: span、input等 规则1:块级元素中能写:行内元素、块级元素(几乎什么都能写) 规则2:行级元素中能写:行内元素,但不能写:块…...

Leetcode百题斩-字典树

208. Implement Trie (Prefix Tree)[medium] 做完了哈希&#xff0c;来看看数据结构&#xff0c;做做字典树。字典树在搜索方面的作用还是蛮大的&#xff0c;主要是能实现前缀联想以及正确性匹配相关的功能。 字典树又名前缀树&#xff0c;顾名思义就是维护字符串的前缀。这个…...

大数据Spark(五十九):Standalone集群部署

文章目录 Standalone集群部署 一、节点划分 二、搭建Standalone集群 1、将下载好的Spark安装包上传解压 2、配饰spark-env.sh 3、配置workers 4、将配置好的安装包发送到node2、node3节点上 5、启动Standalone集群 三、提交任务测试 Standalone集群部署 Standalone 模…...

Vue 3 ~ 3.5 版本useTemplateRef使用

注意&#xff0c;useTemplateRef版本要在 3.5 以后才可使用&#xff0c;版本低的 ref 替代问题也不大&#xff5e; 2024 年 9 月 1 日发布的 组合式 API&#xff1a;辅助 | Vue.js&#xff0c;引入一个小小的新 API useTemplateRef()&#xff0c;它用于访问实际的 DOM 节点。 …...

使用F5-tts复刻音色

最近第一人称视角的视频很火&#xff0c;想试试看复刻一下电视剧中某个角色的音色。看了下字节的API&#xff0c;嗯。。。138元一个音色&#xff0c;还不包括合成语音的费用&#xff0c;算了还是看看开源项目吧。 随便搜了搜&#xff0c;发现了两个项目一个是openvoice&#x…...

使用亮数据代理IP+Python爬虫批量爬取招聘信息训练面试类AI智能体(附完整源码)

文章目录 一、为什么要用代理IP&#xff1f;(重要&#xff01;)二、环境准备&#xff08;5分钟搞定&#xff09;三、爬虫核心代码解析&#xff08;含反反爬技巧&#xff09;四、数据清洗的3个关键步骤五、训练AI智能体的实战技巧六、法律风险防范&#xff08;必须看&#xff01…...