c++ - 如何创建旋转的矩形或多边形 ROI/mask?

标签 c++ opencv mask threshold roi

假设我有以下图片:

enter image description here

我感兴趣的区域是这样的:

ROI

我想得到以下结果:

enter image description here

知道投资返回率由四点表示,我如何实现这一目标:

 Point pt1(129,9);
 Point pt2(284,108);
 Point pt3(223,205);
 Point pt4(67,106);

最佳答案

想法是使用fillPoly()将旋转矩形/多边形内的所有像素填充为 0、255,否则:

Mat mask = cv::Mat(img.size(), CV_8UC1, Scalar(255));     // suppose img is your image Mat

vector<vector<Point>> pts = { { pt1, pt2, pt3, pt4 } };
fillPoly(mask, pts, Scalar(0));                           // <- do it here

关于c++ - 如何创建旋转的矩形或多边形 ROI/mask?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/30828207/

相关文章:

python - OpenCV 中的图像转换

ios - 如何使用 Core Graphics 在 `drawRect` 中填充一个 unicode 符号?

c++ - 所有共线点的凸包?

c++ - 带有指针和比较器C++的优先级队列

c++ - 将矩形转换为梯形以获得透视效果

c++ - 在opencv中复制Mat

iphone - 删除 UIButton 层上的 CAShapeLayer 掩码,以便动画 UIButton 大小更改被取消掩码

css - 使按钮文本透明以显示其背后的动画渐变

c++ - 表达式模板 - 无法专门化函数模板

c++ - 如何在 makefile 的同一列中打印 {done}