opencvsharp的FillPoly方法讲解
时间: 2023-07-28 16:10:52 浏览: 103
OpenCvSharp的FillPoly方法用于填充多边形。其语法如下:
```csharp
public static void FillPoly(InputOutputArray img, InputArray[] pts, Scalar color, LineTypes lineType = LineTypes.Link8, int shift = 0, Point[][] offset = null);
```
其中,参数含义如下:
- `img`:输入/输出图像,类型为 `InputOutputArray`。
- `pts`:多边形的顶点坐标数组,类型为 `InputArray[]`,其中 `InputArray` 可以是 `Mat`、`Vec2f[]` 等类型。
- `color`:填充颜色,类型为 `Scalar`。
- `lineType`:线条类型,类型为 `LineTypes`,默认为 `LineTypes.Link8`。
- `shift`:坐标点小数位数,类型为 `int`,默认为 0。
- `offset`:偏移量,类型为 `Point[][]`,默认为 null。
下面是一个简单的例子,展示如何使用 FillPoly 方法:
```csharp
using OpenCvSharp;
class Program
{
static void Main(string[] args)
{
Mat img = new Mat(500, 500, MatType.CV_8UC3, new Scalar(255, 255, 255)); // 创建一个白色图像
Point[][] pts = { new Point[] { new Point(100, 100), new Point(300, 100), new Point(200, 300) } };
Cv2.FillPoly(img, pts, new Scalar(0, 0, 255)); // 填充红色三角形
Cv2.ImShow("image", img); // 显示图像
Cv2.WaitKey(0); // 等待按键
Cv2.DestroyAllWindows(); // 关闭所有窗口
}
}
```
运行结果如下图所示,显示了一个红色三角形的图像:
![FillPoly示例图像](https://img-blog.csdnimg.cn/20211103113410206.png)