2025-09-26
C#
00

OpenCvSharp是OpenCV库的C#封装,提供了丰富的图像处理功能。模板匹配是一种在大图像中查找小模板图像位置的技术。在这篇文章中,我们将介绍如何使用OpenCvSharp进行模板匹配,并考虑目标尺寸大小的匹配。

以下是实现模板匹配的详细步骤:

  1. 安装 OpenCvSharp
  2. 加载图像和模板
  3. 进行模板匹配
  4. 计算匹配结果的尺寸
  5. 在接受范围内绘制匹配结果

安装 OpenCvSharp

你可以通过NuGet包管理器来安装OpenCvSharp。运行以下命令:

Bash
Install-Package OpenCvSharp4 Install-Package OpenCvSharp4.runtime.win

实例一

加载图像和模板

目标图

image.png

模板

2025-09-26
C#
00

摘要

在WinForms应用程序中使用C#和OpenCvSharp进行图片裁剪,可以创建一个简单的WinForms界面来实现这个功能。

Mat类Mat 是OpenCvSharp中用于表示图像和矩阵的主要类。你可以使用它来加载、保存、裁剪和处理图像。

  • Mat(string fileName):用于加载图像文件。
  • SaveImage(string fileName):用于保存图像到文件。
  • Rect:用于表示矩形区域。
  • new Mat(Mat source, Rect roi):用于裁剪图像。

正文

nuget 安装 OpenCVSharp4

这里OpenCvSharp4.runtime.win 库需要引用,不然会报错

DllNotFoundException: Unable to load DLL 'OpenCvSharpExtern' or one of its dependencies

OpenCvSharp.Extensions 库

2025-09-26
C#
00

摘要

在计算机视觉领域中,图像处理和分析是一个非常重要的应用。OpenCVSharp 是一个使用 C++ 和 .NET 技术实现的开源计算机视觉库,它提供了丰富的图像处理和分析功能。在 OpenCVSharp 中,Mat 是一个基本的图像数据结构,它可以存储任意类型的数据,包括图像数据。Mat 对象是一个多维数组,其中每个元素都表示一个像素。Mat 对象提供了很多有用的方法,可以方便地读取和修改图像的像素值。 在 OpenCVSharp 中,可以使用 Mat 对象的 .At 方法来读取和修改图像的像素值。这个方法的第一个参数是要读取或修改的像素的位置,可以是行号和列号,也可以是二进制格式的偏移量。

正文

nuget 安装 OpenCVSharp

这里OpenCvSharp4.runtime.win 库需要引用,不然会报错

DllNotFoundException: Unable to load DLL 'OpenCvSharpExtern' or one of its dependencies

OpenCvSharp.Extensions 库

2025-09-26
C#
00

摘要

在现代计算机视觉领域中,使用OpenCVSharp调用本地摄像头是一项非常重要的技能。OpenCVSharp是一个跨平台的开源计算机视觉库,它支持多种编程语言,包括C++、Python、Java等。本文将介绍如何使用C# 下OpenCVSharp调用本地摄像头,并介绍相关的基本类和API。

使用OpenCvSharp调用本地摄像头,用到基本类

VideoCapture类

  • VideoCapture(string filename):构造函数,用于打开视频文件。
  • VideoCapture(int device):构造函数,用于打开摄像头设备,其中device是摄像头的索引。
  • IsOpened():检查VideoCapture是否成功打开。
  • Read(Mat frame):读取下一帧视频并将其存储在Mat对象中。
  • Release():释放VideoCapture对象和相关资源。

正文

nuget 安装 OpenCVSharp4

这里OpenCvSharp4.runtime.win 库需要引用,不然会报错

DllNotFoundException: Unable to load DLL 'OpenCvSharpExtern' or one of its dependencies

OpenCvSharp.Extensions 库

2025-09-26
C#
00

摘要

在 C# 中使用 OpenCvSharp 进行颜色转换,主要是通过两个函数:cvtColor 和 bgr2Lab 实现的。其中,cvtColor 函数可以将图像从一个颜色空间转换到另一个颜色空间,例如将图像从 RGB 转换为灰度图像。而 bgr2Lab 函数则可以将 BGR 格式的图像转换为 LAB 格式的图像,其中 LAB 是一种常用的颜色空间。

此外,OpenCvSharp 还提供了一些通道分离和合并的函数。例如,cvtColor 函数还可以实现对图像通道的分离,使得我们可以对每个通道进行单独的处理。同时,我们也可以使用 merge 函数将多个通道的图像合并为一个。

除此之外,OpenCvSharp 还提供了其他的颜色转换函数,例如 Lab2BGR 和 Hsv2Bgr 等,可以帮助我们实现更多的颜色空间转换和处理。

正文

nuget 安装库

OpenCVSharp 库

OpenCvSharp4.runtime.win 库

OpenCvSharp.Extensions 库

在 WinForms 窗体中,创建七个 PictureBox 控件,分别用于显示原始图像、灰度图像、HSV 图像、合并通道图像以及分离的三个通道图像。在 Load 方法中调用 LoadConvertImage 方法加载图像并进行颜色转换,然后将结果显示在各个 PictureBox 控件中。

image.png