标签: opencv
要求:创建640x360大小的二进制掩码。位于多边形内的点标记为1.否则为0。
输入:多边形的顶点。当用户在html页面上标记多边形时,将获得顶点。
是否可以通过简单的方式在opencv中这样做?
我知道一种可能的解决方案。 http://alienryderflex.com/polygon/。这允许查找点是否位于给定其顶点的多边形内。但是它需要我遍历每个像素以查找它们是否位于多边形内部,我认为这是一个漫长的过程。
答案 0 :(得分:3)
是的,您想使用OpenCV fillPoly功能:
void fillPoly(Mat& img, const Point** pts, const int* npts, int ncontours, const Scalar& color, int lineType=8, int shift=0, Point offset=Point() )
你可以找到一个关于如何使用这个here的例子,但有效的是fillPoly()所做的是“填充由多个多边形轮廓限定的区域。该函数可以填充复杂区域,例如,带孔的区域,有自交的轮廓(它们的一些部分),等等。“