编辑
2025-09-19
C#
00

目录

安装 OpenCvSharp
读取图像
颜色空间转换
RGB 转 GRAY
RGB 转 HSV
RGB 转 YUV
完整代码示例
结论

OpenCvSharp 是一个用于图像处理的强大 .NET 库,基于 OpenCV。颜色转换是图像处理中的一个基本操作,常用于图像的预处理和特征提取。在本篇文章中,我们将详细介绍如何使用 OpenCvSharp 进行图像颜色空间的转换。

安装 OpenCvSharp

首先,我们需要在项目中安装 OpenCvSharp 库。可以通过 NuGet 包管理器来安装这个库:

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

读取图像

在进行颜色转换之前,我们首先需要读取一张图像。以下是读取图像的示例代码:

C#
using OpenCvSharp; class Program { static void Main() { // 读取图像 Mat src = Cv2.ImRead("example.jpg"); // 检查图像是否成功加载 if(src.Empty()) { Console.WriteLine("图像加载失败。"); return; } // 显示原图 Cv2.ImShow("Original Image", src); Cv2.WaitKey(); Cv2.DestroyAllWindows(); } }

image.png

example.jpg替换为你的实际图像路径。

颜色空间转换

OpenCvSharp 提供了多种颜色空间转换函数,使用 Cv2.CvtColor 方法可以轻松实现。下面是一些常见的颜色空间转换示例:

RGB 转 GRAY

C#
// RGB 转换为 GRAY Mat gray = new Mat(); Cv2.CvtColor(src, gray, ColorConversionCodes.BGR2GRAY); // 显示灰度图像 Cv2.ImShow("Gray Image", gray); Cv2.WaitKey(); Cv2.DestroyAllWindows();

image.png

RGB 转 HSV

C#
// RGB 转换为 HSV Mat hsv = new Mat(); Cv2.CvtColor(src, hsv, ColorConversionCodes.BGR2HSV); // 显示HSV图像 Cv2.ImShow("HSV Image", hsv); Cv2.WaitKey(); Cv2.DestroyAllWindows();

RGB 转 YUV

C#
// RGB 转换为 YUV Mat yuv = new Mat(); Cv2.CvtColor(src, yuv, ColorConversionCodes.BGR2YUV); // 显示YUV图像 Cv2.ImShow("YUV Image", yuv); Cv2.WaitKey(); Cv2.DestroyAllWindows();

image.png

完整代码示例

以下是从读取图像、颜色转换到显示结果的完整代码示例:

C#
using OpenCvSharp; class Program { static void Main() { // 读取图像 Mat src = Cv2.ImRead("path_to_your_image.jpg"); // 检查图像是否成功加载 if(src.Empty()) { Console.WriteLine("图像加载失败。"); return; } // 显示原图 Cv2.ImShow("Original Image", src); Cv2.WaitKey(); Cv2.DestroyAllWindows(); // RGB 转 GRAY Mat gray = new Mat(); Cv2.CvtColor(src, gray, ColorConversionCodes.BGR2GRAY); // 显示灰度图像 Cv2.ImShow("Gray Image", gray); Cv2.WaitKey(); Cv2.DestroyAllWindows(); // RGB 转 HSV Mat hsv = new Mat(); Cv2.CvtColor(src, hsv, ColorConversionCodes.BGR2HSV); // 显示HSV图像 Cv2.ImShow("HSV Image", hsv); Cv2.WaitKey(); Cv2.DestroyAllWindows(); // RGB 转 YUV Mat yuv = new Mat(); Cv2.CvtColor(src, yuv, ColorConversionCodes.BGR2YUV); // 显示YUV图像 Cv2.ImShow("YUV Image", yuv); Cv2.WaitKey(); Cv2.DestroyAllWindows(); } }

运行这段代码,你将会看到依次显示的原图、灰度图、HSV图以及YUV图。

结论

通过这篇文章,我们了解了如何使用 OpenCvSharp 进行图像的颜色转换操作。颜色空间的转换在图像处理任务中是非常常见的,它为我们提供了多种途径来分析和处理图像中的信息。希望本文能帮助你更好地掌握 OpenCvSharp 的基本用法。

本文作者:技术老小子

本文链接:

版权声明:本博客所有文章除特别声明外,均采用 BY-NC-SA 许可协议。转载请注明出处!