C#OpenCV算子-绘图
3.1 多边形填充
函数原型:
void FillPoly(Mat img, IEnumerable<IEnumerable<Point>> pts, Scalar color, LineTypes lineType = LineTypes.Link8, int shift = 0, Point? offset = null) /*参数: Img:输入图像 Pts:多边形角点列表 Color:多边形的填充颜色 lineType:多边形的线条类型 shift:坐标点小数点位数 offset:所有角点的可选偏移量 功能: 绘制一个多边形 */
例子:
static void Main(string[] args) { Mat src1 = new Mat(@"C:\Users\Administrator\Desktop\1.jpg"); List<Point> pts = new List<Point>(); pts.Add(new Point(10, 10)); pts.Add(new Point(10, 100)); pts.Add(new Point(300, 300)); List<List<Point>> ptss = new List<List<Point>>() { pts }; Cv2.FiiPoly(src1, ptss, new Scalar(0, 0, 255)); Cv2.ImShow("test", src1); Cv2.WaitKey(); }
实验样例:
|
Src1 |
dst |
|
|
|
3.2 画矩形
函数原型:
void Rectangle(InputOutputArray img, Rect rect, Scalar color, int thickness = 1, LineTypes lineType = LineTypes.Link8, int shift = 0) /* 参数: img,画矩形的对象 rect,确定矩形的另一种方式,给左上角坐标和长宽 color,指定矩形的颜色或亮度(灰度图像), scalar,颜色. thickness,矩形边框的粗细. 负值(like cv_filled)表示要画一个填充的矩形 linetype,边框线型. shift –坐标点的小数点位数 功能: 在图片上绘制一个矩形。 */
例子:
static void Main(string[] args) { Mat src1 = new Mat(@"C:\Users\Administrator\Desktop\1.jpg"); Rect rect = new Rect(50, 50, 100, 150); Cv2.Rectangle(src1, rect, new Scalar(0, 0, 255)); Cv2.ImShow("test", src1); Cv2.WaitKey(); }
实验样例:
|
Src1
|
结果
|
|
|
|
3.3 画圆
函数原型:
void Circle(InputOutputArray img, Point center, int radius, Scalar color, int thickness = 1, LineTypes lineType = LineTypes.Link8, int shift = 0) /* 参数: img,要画圆的那个图像. center,圆心坐标. radius,半径. color,圆边框颜色. thickness,正值表示圆边框宽度. 负值表示画一个填充圆形 linetype,圆边框线型 shift,圆心坐标和半径的小数点位数 功能: 在图片上绘制一个圆形 */
例子:
static void Main(string[] args) { Mat src1 = new Mat(@"C:\Users\Administrator\Desktop\1.jpg"); Point center = new Point(150, 100); Cv2.Circle(src1, center, 30, new Scalar(0, 0, 255)); Cv2.ImShow("test", src1); Cv2.WaitKey(); }
实验样例:
|
Src1 |
结果 |
|
|
|
3.4 画线
函数原型:
void Line(InputOutputArray img, Point pt1, Point pt2, Scalar color, int thickness = 1, LineTypes lineType = LineTypes.Link8, int shift = 0) /* 参数: img,图像. pt1,线条起点. pt2,线条终点. color,线条颜色. thickness,线条宽度. linetype,线型 shift,坐标点小数点位数. 功能: 在图片上绘制一条直线 */
例子:
static void Main(string[] args) { Mat src1 = new Mat(@"C:\Users\Administrator\Desktop\1.jpg"); Point p1 = new Point(150, 100); Point p2 = new Point(100,200); Cv2.Line(src1, p1, p2, new Scalar(0, 0, 255)); Cv2.ImShow("test", src1); Cv2.WaitKey(); }
实验样例:
|
Src1 |
结果 |
|
|
|
3.5 写字
函数原型:
void PutText(InputOutputArray img, string text, Point org, HersheyFonts fontFace, double fontScale, Scalar color, int thickness = 1, LineTypes lineType = LineTypes.Link8, bool bottomLeftOrigin = false) /* 参数: img,显示文字所在图像. text,待显示的文字. org,文字在图像中的左下角 坐标. fontface,字体类型. fontscale,字体大小. color,文本颜色. thickness,写字的线的粗细. bottomleftorigin,true, 图像数据原点在左下角. otherwise, 图像数据原点在左角. 功能: 在图片上绘制文本 */
例子:
static void Main(string[] args) { Mat src1 = new Mat(@"C:\Users\Administrator\Desktop\1.jpg"); Point p1 = new Point(150, 100); Cv2.PutText(src1, "hey!", p1, HersheyFonts.HersheyComplex, 3, new Scalar(0, 0, 255), 2); Cv2.ImShow("test", src1); Cv2.WaitKey(); }
实验样例:
|
Src1 |
结果 |
|
|
|
/*-------------------------------------------------------------------------------------------------------
笔者说明:
该笔记来源于本人学习OpenCvSharp时的资料,
分享出来只是为了供大家学习,并且为了自己以后想要用的时候方便寻找。
时间:2023年3月12日
------------------------------------------------------------------------------------------------------------*/

OpenSharp算子-绘图










浙公网安备 33010602011771号