cv2 画多边形不填充_OpenCv:绘制一个白色填充的多边形

I'd like to draw a white filled polygon, with arbitrary angle, in a black IplImage. I know there exists function such as createCircle, but I can't find something similar for polygons.

I found this , but the use of it is awful, I mean I shouldn't have to go into this just to draw one simple white polygon on a black background...!

The example I found on the OpenCV documentation:

void MyPolygon( Mat img )

{

int lineType = 8;

/** Create some points */

Point rook_points[1][20];

rook_points[0][0] = Point( w/4.0, 7*w/8.0 );

rook_points[0][1] = Point( 3*w/4.0, 7*w/8.0 );

rook_points[0][2] = Point( 3*w/4.0, 13*w/16.0 );

rook_poi /*** blablabla **/

rook_points[0][19] = Point( w/4.0, 13*w/16.0) ;

const Point* ppt[1] = { rook_points[0] };

int npt[] = { 20 };

fillPoly( img,

ppt,

npt,

1,

Scalar( 255, 255, 255 ),

lineType );

}

Basically, my question is, how do I put a CvBox2D into fillPoly, to get a mask out of it and finally set the "ROI with angle" that I need?

解决方案

Like this:

#include

void drawBox( CvArr* img, CvBox2D box, CvScalar color )

{

CvPoint2D32f pointsf[4];

cvBoxPoints( box , pointsf );

CvPoint pointsi[4];

for(int i=0;i<4;i++)

{

pointsi[i]=cvPointFrom32f(pointsf[i]);

}

CvPoint* countours[1]={

pointsi,

};

int countours_n[1]={

4,

};

cvFillPoly( img, countours, countours_n, 1, color );

}

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值