1.EmguCV图像处理系统组成

2.图像的基本操作

注意:这些函数都在CvInvoke类中,使用时CvInvoke.xxx
示例代码:
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
using Emgu.CV;
using Emgu.Util;
using Emgu.CV.Structure;
using Emgu.CV.CvEnum;
namespace Lesson2
{
class Program
{
static void Main(string[] args)
{
//Mat是EmguCV中存储图像的类
Mat srcImg = CvInvoke.Imread("C:\\Users\\18846\\Pictures\\cat.jpg");
Mat srcImg1=new Mat();
if (!srcImg.IsEmpty)
{
Console.WriteLine("srcImg is OK!");
}
Console.WriteLine("图像的宽度是:{0}",srcImg.Rows);
Console.WriteLine("图像的高度是:{0}", srcImg.Cols);
Console.WriteLine("图像的通道数是:{0}", srcImg.NumberOfChannels);
CvInvoke.NamedWindow("src", NamedWindowType.Normal);//设置窗体
CvInvoke.Imshow("src", srcImg);
CvInvoke.CvtColor(srcImg, srcImg1, ColorConversion.Bgr2Gray);//转为灰度图像
CvInvoke.Imwrite("1.bmp", srcImg1);
CvInvoke.Imshow("src1", srcImg1);
CvInvoke.WaitKey(0);
CvInvoke.DestroyWindow("src");//销毁单个窗口
CvInvoke.DestroyAllWindows();//销毁所有窗口
}
}
}
3.函数详解
- 命名空间:
using Emgu.CV —封装了OpenCV基本图像处理函数,在CvInvoke类中
using Emgu.CV.CvEnum —OpenCV枚举类型,包含一些枚举类型宏定义 - Imread()函数:

第一个参数,需要填入图片路径名,支持如下格式:

第二个参数,指定加载图像的颜色类型,默认为ImreadModes.Color=1:

- NamedWindow()函数:

- Imshow()函数:

- Imwrite()函数:

- WaitKey()函数:

补充(与图像属性相关)
- IsEmpty 判断图像是否为空
- Rows 获取图像行数(高度)
- Cols 获取图像列数(长度)
- NumberOfChannels 获取图像通道数
- Depth 获取图像位深度