(4条消息) c# opencvsharp学习笔记(2)
Mat src = new Mat("lenna.png", ImreadModes.AnyColor);//src就是source源,dst destination,目的地。
Mat src = Cv2.ImRead("lenna.png", ImreadModes.GrayScale);
这两个读取图片最常用的方式,个人比较喜欢用前者。
这是imreadmodes的几个枚举,记住第4个是转成灰度图就行了,具体的看下面
public enum ImreadModes { // // 摘要: // If set, return the loaded image as is (with alpha channel, otherwise it gets // cropped). Unchanged = -1, // // 摘要: // If set, always convert image to the single channel grayscale image. GrayScale = 0, // // 摘要: // If set, always convert image to the 3 channel BGR color image. Color = 1, // // 摘要: // If set, return 16-bit/32-bit image when the input has the corresponding depth, // otherwise convert it to 8-bit. AnyDepth = 2, // // 摘要: // If set, the image is read in any possible color format. AnyColor = 4, // // 摘要: // If set, use the gdal driver for loading the image. LoadGdal = 8 }
2.显示图片
Cv2.ImShow("src image", src);using (new Window("src image", src))
两种效果一样,基本上都是使用第一种,如果要在两个不同的窗口显示图片,窗口名字不能取一样,否则会直接在那个窗口上更新图片。
3.保存图片
Cv2.ImWrite("lenna1.png", dst);//和exe在同一个文件夹下
4.flip翻转图像
Cv2.Flip(src,dst, FlipMode.XY);//水平垂直翻转
5.写字
Cv2.PutText(src, //目标图像 "lenna", //字符串 new Point(0,80), //位置,注意这是字符串左下角的位置 HersheyFonts.HersheyComplex, //字体类型 5, //字体大小 Scalar.White); //颜色
还有一个重载,第6个是参数thinkness,也就是厚度默认1,下面圆也有。
6.圆
//空心圆 Cv2.Circle(src, //目标图像 new Point(80, 80), //中心点坐标 60, //半径 Scalar.White); //颜色 //实心圆 Cv2.Circle(dst, new Point(80, 80), 30, Scalar.White,65);//多一个厚度,后面还有两个参数是LineTypes平滑程度,和shift缩小倍率
因为线条宽度是向半径两边展开的,所以要画实心圆要把半径变成原来的一半。
7.线
Cv2.Line(src, 0, 0, 80, 80, Scalar.White);//目标图像,点1x,y,点2x,y,颜色
有多个重载,同样有平滑程度和缩小倍率。
8,框
Rect rect = new Rect(0, 0, 100, 100); Cv2.Rectangle(src, rect, Scalar.White);
有多个重载,同样有平滑程度和缩小倍率。
赞 (0)