假设我的目标是从初始图像中提取轮廓。我使用 OpenCV 执行了这个操作:
cv::Mat gray, edges;
cv::cvtColor(image, gray, CV_BGRA2GRAY);
cv::Canny(gray, edges, 100, 300, 3);
std::vector<std::vector<cv::Point>> contours;
std::vector<cv::Vec4i> hierarchy;
cv::findContours(edges, contours, hierarchy, cv::RETR_TREE, cv::CHAIN_APPROX_SIMPLE, cv::Point(0, 0));
现在轮廓包含在点数组中。我想重建一个与初始图像具有相同尺寸的 cv::Mat 结构,以便通过将其叠加到图像来强调轮廓。
特别是,我对立即绘制轮廓不感兴趣。我将执行以下操作:
- 提取轮廓
- 扩大轮廓
- 在图像上叠加轮廓(就像在边缘锐化中所做的那样)
因此,轮廓必须是与输入图像大小相同的矩阵。
我怎样才能做到这一点?
提前致谢。