일
나는 감지하고 다음 단계로 번호판을 읽으려고수행 : 죄송합니다,
1) houghlines를 사용하여 사각형을 감지는 (이미이 단계에이 문제를 가지고)
2) 관점을 수정 사각형
3)이 사각형에
houghLines가 올바른 라인을 감지하지 못합니다. 이 문제를 해결하는 방법?
를 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 필터가 작동하지 않습니다 (내가 직접 추가 이미지에 대한 충분한 카르마이없는) 첨부 된 이미지에서 볼 수있는 나는 아무 생각이 없기 때문에 왜 가장자리 번호판의 번호는 인식되지 않습니다. 내 목표를 달성하는 방법에 대한 아이디어는 언제나 환영합니다.
당신은 여기에서 선분 검출기 코드를 시도 할 수 있습니다 : http://www.runmycode.org/CompanionSite/site.do?siteId=132 을 Hough 변환을위한 대안으로. – GilLevi
솔직히 : C가 내 머리 위로 간다 –
앞으로 외부 링크가 손실 될 수 있으므로 질문에 코드를 제공해주십시오. –