由于工作学习需要,今天开始正式学习opencv c#,记录一下
1.利用nuget包管理器为工程添加opencvsharp4和opencvsharp4.runtime.win
2.在工程中引用 using OpenCvSharp;
至此 准备工作完成。
private void Form1_Load(object sender, EventArgs e)
{
Mat src = new Mat("C:\\Users\\Dennis\\Desktop\\1.png",ImreadModes.AnyColor|ImreadModes.AnyDepth);
using(new Window("src image", src))
Cv2.WaitKey();
}
public Mat(string fileName, ImreadModes flags = ImreadModes.Color)
//第一个参数指定文件路径,第二个参数指定颜色和深度
这里回顾一下using语句,using语句后规定一个范围{},在范围结束时会自动把using(对象)中的对象dispose。
private void Form1_Load(object sender, EventArgs e)
{
//Scalar s = new Scalar(0,0,255);
//创建一个500*500的图像矩阵,深度为8,通道数为3,对矩阵的每一个值都赋为(0,0,255),第一个通道的值为1,第二个通道的值为3
Mat m = new Mat(500,500, MatType.CV_8UC3, new Scalar(0,0,255));
using(new Window("111", m))
{
Cv2.WaitKey(0);
}
}
private void Form1_Load(object sender, EventArgs e)
{
string imagePath = "C:\\Users\\Dennis\\Desktop\\1.png";
var src = new Mat(imagePath,ImreadModes.AnyColor|ImreadModes.AnyDepth);
//get src.size and src.type,and give each pixel the following scalar
var dst = new Mat(src.Size(), src.Type(), new Scalar(255,0,255));
using(new Window("src", src))
{
{
Cv2.WaitKey(0);
}
}
using(new Window("dst", dst))
{
Cv2.WaitKey(0);
}
}
ROI(region of interest),即获取感兴趣的区域。共有四种重载。常用的两个重载
dst = src[new Rect(x, y, Width, height)];
dst = src[new Range rowRange, new Range colRange];
主要学习了CV2的Mat类的一些基本运用,并熟悉了一些Mat类属性的含义