gpt4 book ai didi

opencv - houghLines 没有检测到正确的线条。如何纠正这个?

转载 作者:太空宇宙 更新时间:2023-11-03 21:22:25 26 4
gpt4 key购买 nike

工作完成

我尝试通过以下步骤检测和读取车牌:

1)使用houghlines检测四边形(这一步已经遇到这个问题,sorry)
2)修正这个四边形的透视为矩形
3)对该矩形进行OCR

你可以看到我的代码的视觉问题/效果here .
可以找到代码本身 here .

免责声明:我为此使用 Emgu CV,但如果有人好心回答我,我不想打扰他或她专门给我这个包装的答案。

public string loadImage()
{
OpenFileDialog ofd = new OpenFileDialog();
ofd.ShowDialog();
String s = ofd.FileName.Normalize();
return s;
}

public void processImage()
{
String s = loadImage();
Image<Gray, Byte> img = new Image<Gray, byte>(s);
Console.WriteLine("read file @" + s);

Image<Gray, Byte> tinyGrayImg = img.Resize(0.25, INTER.CV_INTER_NN);
CvInvoke.cvShowImage("original gray", tinyGrayImg);
Console.WriteLine("converted " + s + " to grayscale");

Image<Gray, Byte> canny = new Image<Gray, byte>(CvInvoke.cvGetSize(tinyGrayImg));
CvInvoke.cvCanny(tinyGrayImg, canny, 97, 225, 3);
CvInvoke.cvShowImage("canny", canny);
Console.WriteLine("applied Canny to " + s);

try
{
MemStorage mem = new MemStorage();
Image<Bgr, byte> linesImg = canny.Convert<Bgr, byte>();
IntPtr lines = CvInvoke.cvHoughLines2(canny, mem.Ptr, HOUGH_TYPE.CV_HOUGH_PROBABILISTIC, 1, Math.PI / 180, 70, 30, 10);
Seq<LineSegment2D> segments = new Seq<LineSegment2D>(lines, mem);
LineSegment2D[] segArray = segments.ToArray();

for (int i = 0; i < segArray.Length; i++)
{
linesImg.Draw(segArray[i], new Bgr(Color.Red), 1);
}
CvInvoke.cvShowImage("lines", linesImg);
}
catch (Exception e)
{
MessageBox.Show(e.Message);
}

问题

正如您在附图中看到的(我没有足够的业力来直接添加图像),HOUGH_PROBABILISTIC 过滤器没有像我预期的那样工作,我不知道为什么无法识别车牌的边缘。欢迎任何关于如何实现我的目标的想法。

最佳答案

霍夫变换并不完美。它会按照非常简单的算法检测线条,我可以向您保证,您得到的结果非常好。

现在,您需要过滤结果。例如,如果您知道这条线将始终处于某些角度,请删除其余部分。如果您知道它们会有一定长度,请移除所有更小的东西。

如果还不够,也许你一开始做的canny transform还不够。也许您需要基于颜色(白板)的感兴趣区域 (ROI)。或者,也许您可​​以使用 Blob 检测来查找白色物体。您知道的所有常量都应该用于计算机视觉。使用 Hough 变换等单一算法会有帮助,但它不会自动找到所有内容,您需要帮助它!

希望对您有所帮助!

关于opencv - houghLines 没有检测到正确的线条。如何纠正这个?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/19090449/

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