版权声明:本文为博主原创文章,转载请在显著位置标明本文出处以及作者网名,未经作者允许不得用于商业目的。
教程VB.net版本请访问:EmguCV学习笔记 VB.Net 目录-CSDN博客
教程C#版本请访问:EmguCV学习笔记 C# 目录-CSDN博客
笔者的博客网址:https://blog.csdn.net/uruseibest
教程配套文件及相关说明以及如何获得pdf教程和代码(博客上的教程内容会和pdf教程一致,教程中也会包含所有代码),请移步:EmguCV学习笔记
4.1 颜色变换
颜色变换是图像处理的基础,大多数情况下,图像处理会把原图像处理成灰度图像,并进一步处理为二值图像后,再进行后续操作。
在EmguCV中,不同的颜色空间可以使用CvInvoke.CvtColor方法进行转换,该方法用于将图像从一种颜色空间转换到另一种颜色空间,它常用的一个声明:
Public Shared Sub CvtColor(src As IInputArray, dst As IOutputArray, code As ColorConversion, Optional dstCn As Integer = 0)
参数说明:
- src:输入图像。
- dst:输出图像。
- code:这是一个ColorConversion枚举,包括了很多颜色空间转换的成员,通常格式是(一种颜色空间)2(另外一种颜色空间),2是TO的意思。例如将BGR转灰度:ColorConversion.Bgr2Gray。笔者数了一下,一共提供了200余种颜色空间转换。
图4-1 ColorConversion枚举
【代码位置:frmChapter4】Button1_Click
'CvtColor更改颜色空间
Private Sub Button1_Click(sender As Object, e As EventArgs) Handles Button1.Click
Dim m As New Mat("C:\learnEmgucv\lena.jpg", ImreadModes.Color)
ImageBox1.Image = m
Dim mOut1 As New Mat
'Bgr转Hsv
CvInvoke.CvtColor(m, mOut1, ColorConversion.Bgr2Hsv)
ImageBox2.Image = mOut1
Dim mOut2 As New Mat
'Bgr转Gray
CvInvoke.CvtColor(m, mOut2, ColorConversion.Bgr2Gray)
ImageBox3.Image = mOut2
End Sub
运行后如下图所示:
图4-2 颜色空间转换