Я хочу уместить линию от контура. Результатом функции fitline () является двухмерный вектор (resultLine) с 4 элементами: vx, vy, x0, y0. Делая resultLine.size () я получаю [1x4], что имеет смысл, учитывая документацию. Поэтому я не понимаю, что делает эта строка кода:
resultLine.at (i, j, 0);
, где «i» идет от 0: 1080 и «j»0: 255
Я получил этот код от другого человека, и я пытаюсь выяснить, что делает кусок кода.
Пример:
cv::Mat& img
std::vector<cv::Mat> contours;
cv::Mat resultLine;
cv::cvtColor(img, grey,cv::COLOR_BGR2GRAY);
cv::threshold(grey, thresh, 19, 255, cv::THRESH_BINARY);
cv::findContours(thresh, contours, cv::RETR_LIST, cv::CHAIN_APPROX_SIMPLE);
for(int t = 0; t < contours.size(); t++){
cv::fitLine(contours[t], resultLine, cv::DIST_L2, 0, 0.01, 0.01);
}
for (int i = (img.rows-1); i > (img.rows / 2); i = i - 5){
for (int j = 0; j < img.cols; j++) { //goes across the images
if(img.at<uchar>(i, j, 0) != resultLine.at<uchar>(i, j, 0)){
...}
}
}
Эта последняя строка - условие, которое я не понимаю.