91av视频/亚洲h视频/操亚洲美女/外国一级黄色毛片 - 国产三级三级三级三级

  • 大小: 14.4MB
    文件類型: .zip
    金幣: 1
    下載: 0 次
    發布日期: 2023-07-31
  • 語言: C/C++
  • 標簽: CV??

資源簡介

基于OpenCV3( Python / C++ ) 的車道檢測代碼和測試視頻

資源截圖

代碼片段和文件信息

//?Author:?Francis?Liu
//?Email:?francislucien2017@126.com
//?This?code?is?about?lane?detection?by?using?OpenCV3.

#include
#include
#include
#include
#include
#include
#include
#include

using?std::cout;
typedef?std::vector?linesType;
const?double?PI?=?3.1415926535;
bool?show_steps?=?false;

//?m:?斜率?b:?截距?norm:?線長
struct?hough_pts?{
double?m?b?norm;
hough_pts(double?m?double?b?double?norm)?:
m(m)?b(b)?norm(norm)?{};
};

void?getROI(cv::Mat?img?std::vector?vertices?cv::Mat&?masked)?{
cv::Mat?mask?=?cv::Mat::zeros(img.size()?img.type());
if?(img.channels()?==?1)?{
cv::fillConvexPoly(mask?vertices?cv::Scalar(255));
}
else?if(img.channels()?==?3){
cv::fillConvexPoly(mask?vertices?cv::Scalar(255255255));
}
int?a?=?10;
cv::bitwise_and(img?img?masked?mask);
}

void?drawLines(cv::Mat&?img?linesType?lines?cv::Scalar?color)?{
for?(int?i?=?0;?i? cv::Point?pt1?=?cv::Point(lines[i][0]?lines[i][1]);
cv::Point?pt2?=?cv::Point(lines[i][2]?lines[i][3]);
cv::line(img?pt1?pt2?color?4?8);
}
}


void?averageLines(cv::Mat?linesType?lines?double?y_min?double?y_max?linesType&?output)?{
std::vector?left_lane?right_lane;
for?(int?i?=?0;?i? cv::Point2f?pt1?=?cv::Point2f(lines[i][0]?lines[i][1]);
cv::Point2f?pt2?=?cv::Point2f(lines[i][2]?lines[i][3]);
double?m?=?(pt2.y?-?pt1.y)?/?(pt2.x?-?pt1.x);
double?b?=?-m?*?pt1.x?+?pt1.y;
double?norm?=?sqrt((pt2.x?-?pt1.x)*(pt2.x?-?pt1.x)?+?(pt2.y?-?pt1.y)*(pt2.y?-?pt1.y));
if?(m? left_lane.push_back(hough_pts(m?b?norm));
}
if?(m?>?0)?{?//?right?lane
right_lane.push_back(hough_pts(m?b?norm));
}
}

double?b_avg_left?=?0.0?m_avg_left?=?0.0?xmin_left?xmax_left;
for?(int?i?=?0;?i? b_avg_left?+=?left_lane[i].b;
m_avg_left?+=?left_lane[i].m;
}
b_avg_left?/=?left_lane.size();
m_avg_left?/=?left_lane.size();
xmin_left?=?int((y_min?-?b_avg_left)?/?m_avg_left);
xmax_left?=?int((y_max?-?b_avg_left)?/?m_avg_left);
//?left?lane
output.push_back(cv::Vec4i(xmin_left?y_min?xmax_left?y_max));

double?b_avg_right?=?0.0?m_avg_right?=?0.0?xmin_right?xmax_right;
for?(int?i?=?0;?i? b_avg_right?+=?right_lane[i].b;
m_avg_right?+=?right_lane[i].m;
}
b_avg_right?/=?right_lane.size();
m_avg_right?/=?right_lane.size();
xmin_right?=?int((y_min?-?b_avg_right)?/?m_avg_right);
xmax_right?=?int((y_max?-?b_avg_right)?/?m_avg_right);
//?right?lane
output.push_back(cv::Vec4i(xmin_right?y_min?xmax_right?y_max));

//?left?lane:?output[0]
//?right?lane:?output[1]
}

void?bypassAngleFilter(linesType?lines?double?low_thres?double?high_thres?linesType&?output)?{
for?(int

?屬性????????????大小?????日期????時間???名稱
-----------?---------??----------?-----??----
?????文件????????6980??2018-10-27?09:52??lane?detection.cpp
?????文件????????6720??2018-10-26?22:26??lane?detection.py
?????目錄???????????0??2018-10-27?10:18??test_videos\
?????文件????15093678??2018-04-23?23:06??test_videos\test.mp4

評論

共有 條評論