cv::FILLED
时间: 2023-10-30 11:09:41 浏览: 215
cv::FILLED是OpenCV库中的一个常量,用于指定绘制图形时的填充方式。当使用cv::drawContours函数绘制轮廓时,可以将最后一个参数设置为cv::FILLED,这样就可以以填充的方式绘制轮廓区域。相比于遍历整个区域进行绘制,使用cv::FILLED可以提高绘制速度并简化调用过程。
相关问题
cv::rectangle(mask, box, cv::Scalar(255), cv::FILLED)
这行代码使用OpenCV中的函数cv::rectangle绘制一个矩形,将其填充为白色。具体来说,它接受三个参数:mask表示要在其中绘制矩形的图像,box表示矩形的边界框,cv::Scalar(255)表示要绘制的颜色(这里是白色),cv::FILLED表示将矩形内部填充。因此,最终结果是在mask图像上绘制了一个填充为白色的矩形。
cv::circle如何使用
cv::circle函数是OpenCV库中用于绘制圆的函数。它的原型是void cv::circle(InputOutputArray img, Point center, int radius, const Scalar & color, int thickness = 1, int lineType = LINE_8, int shift = 0)。
你可以使用cv::circle函数来绘制实心圆和空心圆。以下是一个示例代码:
#include <iostream>
#include <opencv2/opencv.hpp>
int main() {
// 创建一个黑色的高300,宽600的背景图
cv::Mat image(300, 600, CV_8UC3, cv::Scalar(0, 0, 0));
if (!image.data) {
std::cerr << "[错误] 图像无数据!" << std::endl;
std::exit(EXIT_FAILURE);
}
// 圆心
cv::Point centerCircle1(100, 100);
// 半径
int radiusCircle = 30;
// 颜色
cv::Scalar colorCircle1(0, 0, 255); // (B, G, R)
// 粗细
int thicknessCircle1 = 2;
// 绘制第一个圆
cv::circle(image, centerCircle1, radiusCircle, colorCircle1, thicknessCircle1);
cv::Point centerCircle2(300, 200);
cv::Scalar colorCircle2(0, 255, 0); // (B, G, R)
int radiusCircle2 = 60;
// 绘制第二个实心圆
cv::circle(image, centerCircle2, radiusCircle2, colorCircle2, cv::FILLED);
cv::namedWindow("image", cv::WINDOW_AUTOSIZE);
cv::imshow("image", image);
cv::waitKey(0);
return 0;
}
此代码创建了一个黑色背景的图像,并在图像上绘制了两个圆,一个是空心圆,另一个是实心圆。你可以根据自己的需求修改圆心位置、半径、颜色和粗细。
阅读全文