OpenCvSharp工作学习笔记1

由于工作学习需要,今天开始正式学习opencv c#,记录一下

1.利用nuget包管理器为工程添加opencvsharp4和opencvsharp4.runtime.win

2.在工程中引用 using OpenCvSharp;

至此 准备工作完成。

1.创建Mat对象并在窗口中显示

        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。

2.自定义图像并在窗口中显示

        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);
            }
        }

3.理解运用

        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);
            }
        }

4.ROI 

ROI(region of interest),即获取感兴趣的区域。共有四种重载。常用的两个重载

dst = src[new Rect(x, y, Width, height)];
dst = src[new Range rowRange, new Range colRange];

小结

主要学习了CV2的Mat类的一些基本运用,并熟悉了一些Mat类属性的含义

你可能感兴趣的:(opencvsharp,opencv,人工智能,计算机视觉,c#)