Jump to content
Compvision.ru
Борода22

Распознавание реквизитов платежного документа

Recommended Posts

В 12.08.2020 at 17:48, Smorodov сказал:

По поводу морфологических операций, cv::dilate затем cv::erode.

Да, спасибо, я уже понял методом "тыка" что представляют эти методы

В 12.08.2020 at 17:48, Smorodov сказал:

Для детектора линий, нужно белое изображение на черном фоне

Хорошо, попробую. Просто я линии, которые нашел с помощью HoughLines(), выводил на оригинал изображения. С вашим примером обязательно попробую.

Share this post


Link to post
Share on other sites

Прописал вот такой код:

var lines = Cv2.HoughLinesP(thresh_img, 1, Math.PI / 180, 200, 150, 30);
LineSegmentPoint max_line = new LineSegmentPoint();
for (int i = 0; i < lines.Length; i++)
{
   // получаем максимальную длинную прямую
   if (lines[i].Length() > max_line.Length())
   {
      max_line = lines[i];
   }
   Cv2.Line(original_img, lines[i].P1, lines[i].P2, new Scalar(0, 0, 250), 2);
}
// выводим линию максимальной длины
Cv2.Line(original_img, max_line.P1, max_line.P2, new Scalar(255, 0, 0), 3);

отображает вот в таком виде (синяя линия - это максимально прямая линия)

Как теперь определить угол поворота по синей линии ? Это необходимо для выравнивания скана документа.

Как я понял, угол можно получить с помощью HoughLines(), можно ли как-то получит угол по LineSegmentPoint ?

lines-2.png

Share this post


Link to post
Share on other sites

Ну если знаем 2 точки то alpha=atan2(dy,dx)

  • Like 1

Share this post


Link to post
Share on other sites

Да.

  • Like 1

Share this post


Link to post
Share on other sites

Create an account or sign in to comment

You need to be a member in order to leave a comment

Create an account

Sign up for a new account in our community. It's easy!

Register a new account

Sign in

Already have an account? Sign in here.

Sign In Now


  • Recently Browsing   0 members

    No registered users viewing this page.

×