Моя программа Python OpenCV обнаруживает не всю страницу, а скорее отдельный прямоугольник на странице.Python

Программы на Python
Ответить
Anonymous
 Моя программа Python OpenCV обнаруживает не всю страницу, а скорее отдельный прямоугольник на странице.

Сообщение Anonymous »


Я пытаюсь написать программу на Python, которая может помечать экзаменационные работы с помощью opencv и imutils, я приложил пример. Я пытаюсь получить вид страницы сверху вниз, но он не обнаруживает правильные контуры. Нарисованы контуры imutils four_point_transform. Я бы хотел, чтобы функция применялась ко всей странице, а не к вопросам. Можно ли использовать угловые границы для four_point_transform? Возможно, оно не очень заметно, поэтому вот исходное изображение.
# Импортировать библиотеки импортировать cv2 импортировать numpy как np импортировать imutils из imutils импортировать контуры из imutils.perspective импорт Four_point_transform # Проверьте расположение экзаменационного листа изображение = cv2.imread("test4.jpg") серый = cv2.cvtColor(изображение, cv2.COLOR_BGR2GRAY) размытие = cv2.GaussianBlur(серый, (5, 5), 0) край = cv2.Canny(размытие, 100, 200) # Найдите контуры контуры = cv2.findContours(edge.copy(), cv2.RETR_EXTERNAL, cv2.CHAIN_APPROX_SIMPLE) контуры = imutils.grab_contours(контуры) документ = Нет # Убедитесь, что основным объектом является экзамен если len(контуры) > 0: контуры = отсортированы (контуры, ключ = cv2.contourArea, обратный = True) для c в контурах: пери = cv2.arcLength(c, True) приблизительно = cv2.approxPolyDP(c, 0,02 * пери, Истина) если len(приблизительно) == 4: документ = приблизительно перерыв # Создайте вид бумаги сверху вниз бумага = four_point_transform(изображение, docCnt.reshape(4,2)) warped = four_point_transform(edge, docCnt.reshape(4,2)) # Рисуем контуры cv2.drawContours(изображение, контуры, -1, (0,255,0), 3) cv2.imwrite("Contours.jpg", изображение) # Отображать изображения cv2.imshow("Оригинал", изображение) # cv2.imshow("Перспектива", бумага) # cv2.imshow("Обработано", край) # cv2.imshow("Обработано + Перспектива", искажено) cv2.waitKey(0) cv2.destroyAllWindows
Ответить

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

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

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

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

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