【发布时间】:2019-05-11 07:23:13
【问题描述】:
我在使用图像时刻的地方有这段代码。我想为每个轮廓形状绘制一次颜色。现在,如果我有五个三角形,所有这些都是用不同的颜色绘制的。我想做的只是一种将形状彼此分开的方法,用相同的颜色绘制它们。
vector<vector<Point> > contours;
vector<Vec4i> hierarchy;
findContours(src, contours, hierarchy,
CV_RETR_CCOMP, CV_CHAIN_APPROX_SIMPLE);
vector<Moments> mu(contours.size());
vector<Point2f> mc(contours.size());
for (int i = 0; i < contours.size(); i++)
{
mu[i] = moments(Mat(contours[i]), false);
mc[i] = Point2f(mu[i].m10 / mu[i].m00, mu[i].m01 / mu[i].m00);
}
for (int i = 0; i < contours.size(); i++)
{
Scalar color(rng.uniform(0, 255), rng.uniform(0, 255), rng.uniform(0, 255));
drawContours(dst, contours, i, color, CV_16U, 8, hierarchy);
}
【问题讨论】:
-
@ParamjitSinghRana:请不要将美式拼写改为英式(也不要将英式拼写为美式)。 “颜色”拼写正确。
-
好的,先生,谢谢您的耐心。
标签: c++ opencv image-processing opencv-contour opencv-drawcontour