Здравствуйте, Nuzhny, Вы писали:
| cut |
| N>Добавлю кусочек из того же примера:
N>N>// display the original training samples
N>for (int i = 0; i < (trainSampleCount / 3); i++)
N>{
N> PointF p1 = new PointF(trainData1[i, 0], trainData1[i, 1]);
N> img.Draw(new CircleF(p1, 2.0f), colors[0], -1);
N> PointF p2 = new PointF(trainData2[i, 0], trainData2[i, 1]);
N> img.Draw(new CircleF(p2, 2.0f), colors[1], -1);
N> PointF p3 = new PointF(trainData3[i, 0], trainData3[i, 1]);
N> img.Draw(new CircleF(p3, 2.0f), colors[2], -1);
N>}
N>
N>На С++ будет так:
N>N>for (int i = 0; i < (trainSampleCount / 3); i++)
N>{
N> cv::circle(img, cv::Point(trainData1[i, 0], trainData1[i, 1]), 2, colors[0]);
N> cv::circle(img, cv::Point(trainData2[i, 0], trainData2[i, 1]), 2, colors[1]);
N> cv::circle(img, cv::Point(trainData3[i, 0], trainData3[i, 1]), 2, colors[2]);
N>}
N>
|
| |
На c# за минуту пишется специализированный экстеншн (можно собрать свою библиотеку и переиспользовать в любом проекте) и код сокращается до
(trainSampleCount / 3).ForEach(i =>
{
img.DrawEx(trainData1, colors[0], i).
DrawEx(trainData1, colors[1], i).
DrawEx(trainData1, colors[2], i);
});