Рисование линий в точках пересечения с помощью OpenCV

Сейчас я делаю программу с OpenCV, которая должна иметь следующие функции:

  1. Рисование линий на белом холсте;
  2. Цвет каждой линии оттенки серого, то есть я использую CV_8UC1;
  3. Если рисуемая линия пересекает другие линии, оттенки серого в точках пересечения рассчитываются следующим образом:

    grayscaleResult = 0.5 * ( grayscaleOld + grayscaleNew);
    

где grayscaleOld — цвет линий, нарисованных на холсте, а grayscaleNew — цвет нарисованных линий.

4.Толщина линий может быть меньше 1, иногда > 1.

Я хочу знать, как рисовать точки в точках пересечения, и самое сложное для меня - это неодинаковая тонкость линий.


person zchenkui    schedule 11.05.2014    source источник
comment
The thinness of lines may not be 1, sometimes > 1 Хорошо, тогда, если это не может быть 1, и если это только иногда ›1, в остальных случаях, каково значение ширины? ;-)   -  person kebs    schedule 11.05.2014


Ответы (1)


Для рисования линий в руководстве все сказано. , Например:

int thickness = (a value above 0);
cv::line( image, cv::Point(x0,y0), cv::Point(x1,y1), cv::Scalar(10,20,30), thickness ),

Обратите внимание, что цвета здесь указаны в порядке B, G, R. Если у вас есть одноканальное изображение, будет использоваться только первое значение.

person kebs    schedule 11.05.2014