图3.10绘画多边形代码。
实现效果:
如图3.11所示。
图3.11 绘画多边形效果
Mat:
Mat图像采用CvInvoke类内部函数进行绘画。Mat类本身并没有写入绘画函数。(Mat类和Image
CvInvoke类的绘画函数:
public static void PutText(IInputOutputArray img, string text, Point org, FontFace fontFace, double fontScale, MCvScalar color, int thickness = 1, LineType lineType = LineType.EightConnected, bool bottomLeftOrigin = false);//绘画字符串。
public static void Rectangle(IInputOutputArray img, Rectangle rect, MCvScalar color, int thickness = 1, LineType lineType =
LineType.EightConnected, int shift = 0);//绘画矩形。
public static void Circle(IInputOutputArray img, Point center, int radius, MCvScalar color, int thickness = 1, LineType lineType = LineType.EightConnected, int shift = 0);//绘画圆形。
对Circle()函数参数解析:
IInputOutputArray img:输入输出图像,输入背景图像,输出绘画后图像。
Point center:圆的中心。 int radius:圆的半径。
MCvScalar color:画笔颜色。 int thickness = 1:画笔宽度。
LineType lineType = LineType.EightConnected:线的类型,一个Emgu.CV.Cvenum的标识符。
int shift = 0:部分比特数中心坐标和半径值,默认为0。
实现代码:
如图3.12 所示。
图 3.12 Mat绘画图形代码
实现效果:
如图3.13所示
图 3.13 实现效果
6. 图像遍历
在EmguCv中进行图像遍历是比较耗时的,而在Mat类型中作者并没有找到合适的方法用于图像的遍历像素。这边介绍Image
第一种:
实现代码:
如图3.14所示。
图 3.14 遍历图像方法
第二种:
实现代码:
如图3.15所示。
图 3.15 遍历图像方法
第三种:
实现代码:
如图3.16所示。
图 3.16 遍历图像方法
三种方法实现效果:
如图3.17所示。
图3.17 实现效果
未完待续。。。。