Как обнаружить прямоугольную бумагу в сложном изображении с помощью openCVPython

Программы на Python
Ответить Пред. темаСлед. тема
Anonymous
 Как обнаружить прямоугольную бумагу в сложном изображении с помощью openCV

Сообщение Anonymous »

Как можно определить расположение бумажного прямоугольника как повернутого на этих изображениях с помощью opencv? Большой проблемой является фон, из-за которого трудно выделить только бумагу.
Мне удается получить части краев бумаги с неровными линиями, но, например, есть и ложные линии.< /p>
Вот изображения, на которых мне нужно, чтобы бумага была обнаружена. Как видите, положение камеры остается прежним.
  • Пример изображения 1
  • Пример изображения 2
    Пример изображения 3
  • Пример изображения 4
  • Пример изображения 5

    Я пробовал следующее:
  • Простое удержание порога -> Результат: поскольку части фона имеют тот же цвет, что и бумага, я не могу получить контур бумаги
  • Hough Lines -> Результат: в зависимости от того, как вы меняете параметры, обнаруживается слишком много ложных линий или слишком просматриваются линии реальных краев бумаги
  • Обнаружение контуров и аппроксимация формы -> Результат: для работы с контурами потребуется правильное пороговое значение.
  • Сопоставление функций -> Результат: просто нет достаточно хороших функций для соответствия.
  • Смещение прямоугольника по изображениям -> занимает слишком много времени и неточно, поскольку прямоугольник немного искажен и не идеально квадратный.
Лучшие результаты, которые я получил, — это определение порога с помощью otsu, затем обнаружение краев с помощью canny, извлечение контуров, а затем houghLinesP:
import cv2
import numpy as np
img = cv2.imread("path/to/image", cv2.IMREAD_GRAYSCALE)
_, binary = cv2.threshold(img, 0, 255, cv2.THRESH_BINARY + cv2.THRESH_OTSU)
contours, _ = cv2.findContours(binary, cv2.RETR_EXTERNAL, cv2.CHAIN_APPROX_SIMPLE)
edges = cv2.Canny(contours, 50, 150)
lines = cv2.HoughLinesP(edges, 1, np.pi / 180, 100, minLineLength=45, maxLineGap=8)


Подробнее здесь: https://stackoverflow.com/questions/787 ... ing-opencv
Реклама
Ответить Пред. темаСлед. тема

Быстрый ответ

Изменение регистра текста: 
Смайлики
:) :( :oops: :roll: :wink: :muza: :clever: :sorry: :angel: :read: *x)
Ещё смайлики…
   
К этому ответу прикреплено по крайней мере одно вложение.

Если вы не хотите добавлять вложения, оставьте поля пустыми.

Максимально разрешённый размер вложения: 15 МБ.

  • Похожие темы
    Ответы
    Просмотры
    Последнее сообщение

Вернуться в «Python»