gpt4 book ai didi

c++ - OpenCV 线的平均方向/角度

转载 作者:太空宇宙 更新时间:2023-11-04 13:51:20 24 4
gpt4 key购买 nike

我试图获得我路径两侧的线的角度,以便我可以确定去哪里(我想确保我直接沿着它行驶)。

在第一张图片中,“平均”方向应该是垂直向下(90 度)。在第二个中,它应该指向右侧(60 度)。

到目前为止,我的做法是将图像分成两半,然后计算每一侧的白色像素。左边多就右转,右边多就左转。

不过,这有很多缺点。谁能提出更好的方法?

enter image description here

enter image description here

最佳答案

通过对结果点进行腐 eclipse 和装箱,您可以计算角度:

    cv::Mat img = cv::imread(filename, 0);
.
.
.
cv::Mat element = cv::getStructuringElement(cv::MORPH_RECT, cv::Size(5, 3));
cv::erode(img, img, element);

std::vector<cv::Point> points;
cv::Mat_<uchar>::iterator it = img.begin<uchar>();
cv::Mat_<uchar>::iterator end = img.end<uchar>();

for (; it != end; ++it)
if (*it)
points.push_back(it.pos());

cv::RotatedRect box = cv::minAreaRect(cv::Mat(points));

double angle = box.angle;
if (angle < -45.)
angle += 90.;

OpenCV Bouding Box & Skew Angle

关于c++ - OpenCV 线的平均方向/角度,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/23275520/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com