官方文档链接:https://dovyski.github.io/cvui/components/rect/
Rect
cvui::rect() 渲染一个矩形,可以填充也可以不填充。函数声明如下:
void rect (
cv::Mat& theWhere,
int theX,
int theY,
int theWidth,
int theHeight,
unsigned int theBorderColor,
unsigned int theFillingColor = 0xff000000
)
theWhere 是用于渲染图像的图像/帧,theX 是 X 坐标,theY 是 Y 坐标,theWidth 是矩形的宽度,theHeight 是矩形的高度,theBorderColor 是矩形边框的颜色,格式为 0xRRGGBB ,例如 0xff0000 表示红色,theFillingColor 是矩形的填充颜色,格式为 0xAARRGGBB,例如 0x00ff0000 表示红色,0xff000000 表示透明填充。
下面展示了矩形透明填充的例子,输出结果如下图:
核心语句:
cvui::rect(frame, 50, 50, 100, 150, 0xffffff, 0xff000000);
结果展示:
矩形可以用纯色填充,如下图所示:
核心语句:
cvui::rect(frame, 50, 50, 100, 150, 0xffffff, 0x0000ff00);
结果展示:
扫描二维码关注公众号,回复:
10957328 查看本文章
注意
注意一
当 cvui::rect() 的填充色设置为形如 0xff0000,则程序看作其格式为 0xRRGGBB,即没有透明度。
核心语句:
cvui::rect(frame, 50, 50, 100, 150, 0xffffff, 0xff0000);
结果展示:
注意二
当 cvui::rect() 的填充色设置为形如 0xff00ff00,则同样为透明填充,不难理解,因为填充色已经设置为了透明,则不论 RGB 三种颜色设置为什么值,最终都还是透明的。
核心语句:
cvui::rect(frame, 50, 50, 100, 150, 0xffffff, 0xff00ff00);
结果展示:
注意三
目前无法为矩形的填充透明度定义不同于 0xff000000 的 alpha 值。
核心语句:
cvui::text(frame, 50, 30, "0x1100ff00", 0.5, 0xffffff);
cvui::rect(frame, 50, 50, 100, 30, 0xffffff, 0x2300ff00);
cvui::text(frame, 160, 30, "0x5500ff00", 0.5, 0xffffff);
cvui::rect(frame, 160, 50, 100, 30, 0xffffff, 0x2300ff00);
cvui::text(frame, 270, 30, "0xab00ff00", 0.5, 0xffffff);
cvui::rect(frame, 270, 50, 100, 30, 0xffffff, 0x2300ff00);
cvui::text(frame, 380, 30, "0xef00ff00", 0.5, 0xffffff);
cvui::rect(frame, 380, 50, 100, 30, 0xffffff, 0x2300ff00);
结果展示: