OpenCV, Dash line drawing example source code.
I can know all coordinate from A point to B point using "LineIterator" function in OpenCV.
So this source code is applied by this "LineIterator".
..
So this source code is applied by this "LineIterator".
..
Mat DrawDashLine(Mat inMat, Point start, Point end, int gap, Scalar color) { Mat rMat; rMat = inMat.clone(); cv::LineIterator it(rMat, start, end, 8); vector< pair<cv::Point, cv::Point> > vecPt_pair; vector< cv::Point > vecPt; Point A, B; A = start; for (int i = 0, j = 0; i < it.count; i++, it++) { if (i % gap == 0) { //update end point B = it.pos(); if(j%2) line(rMat, A, B, color, 2); //update start point A = B; j++; } } return rMat; } int main() { Mat img(500, 500, CV_8UC3); img.setTo(0); Mat rImg = DrawDashLine(img, Point(20, 20), Point(300, 300), 10, CV_RGB(255, 0, 0)); namedWindow("test", 0); cv::imshow("test", rImg); waitKey(0); return 0; }..