Я пытаюсь определить расположение этих заполненных черных прямоугольников с помощью OpenCV.
Черные прямоугольники на бумаге
Я пробовал чтобы найти их контуры, но я думаю, что фоновые линии также распознаются как объекты. Кроме того, прямоугольники не полностью разделены (иногда они касаются угла), а затем определяются как один, но мне нужно расположение каждого из них отдельно.
Вот результаты Я получил это из следующего кода.
import numpy as np
import cv2
image = cv2.imread("page.jpg")
result = image.copy()
gray = cv2.cvtColor(image,cv2.COLOR_BGR2GRAY)
thresh = cv2.adaptiveThreshold(gray,255,cv2.ADAPTIVE_THRESH_GAUSSIAN_C, cv2.THRESH_BINARY_INV,51,9)
cnts = cv2.findContours(thresh, cv2.RETR_EXTERNAL, cv2.CHAIN_APPROX_SIMPLE)
cnts = cnts[0] if len(cnts) == 2 else cnts[1]
for c in cnts:
cv2.drawContours(thresh, [c], -1, (255,255,255), -1)
kernel = cv2.getStructuringElement(cv2.MORPH_RECT, (3,3))
opening = cv2.morphologyEx(thresh, cv2.MORPH_OPEN, kernel, iterations=4)
cnts = cv2.findContours(opening, cv2.RETR_EXTERNAL, cv2.CHAIN_APPROX_SIMPLE)
cnts = cnts[0] if len(cnts) == 2 else cnts[1]
for c in cnts:
x,y,w,h = cv2.boundingRect(c)
cv2.rectangle(image, (x, y), (x + w, y + h), (36,255,12), 3)
cv2.imshow('thresh', thresh)
cv2.imshow('opening', opening)
cv2.imshow('image', image)
cv2.waitKey()
Порог
Открытие
Результат
Как можно видите, на начальном изображении белые прямоугольники соединены с черными, но я хочу, чтобы они были отдельно. Затем в Результате он просто обнаруживает контур вокруг всей страницы.
Я пытаюсь определить расположение этих заполненных черных прямоугольников с помощью OpenCV. Черные прямоугольники на бумаге Я пробовал чтобы найти их контуры, но я думаю, что фоновые линии также распознаются как объекты. Кроме того, прямоугольники не полностью разделены (иногда они касаются угла), а затем определяются как один, но мне нужно расположение каждого из них отдельно. Вот результаты Я получил это из следующего кода. [code]import numpy as np import cv2
image = cv2.imread("page.jpg")
result = image.copy() gray = cv2.cvtColor(image,cv2.COLOR_BGR2GRAY)
cnts = cv2.findContours(opening, cv2.RETR_EXTERNAL, cv2.CHAIN_APPROX_SIMPLE) cnts = cnts[0] if len(cnts) == 2 else cnts[1] for c in cnts: x,y,w,h = cv2.boundingRect(c) cv2.rectangle(image, (x, y), (x + w, y + h), (36,255,12), 3)
cv2.imshow('thresh', thresh) cv2.imshow('opening', opening) cv2.imshow('image', image) cv2.waitKey() [/code] Порог Открытие Результат Как можно видите, на начальном изображении белые прямоугольники соединены с черными, но я хочу, чтобы они были отдельно. Затем в Результате он просто обнаруживает контур вокруг всей страницы.
Я пытаюсь определить расположение этих заполненных черных прямоугольников с помощью OpenCV.
Черные прямоугольники на бумаге
Я пробовал чтобы найти их контуры, но я думаю, что фоновые линии также распознаются как объекты. Кроме того, прямоугольники...
Я пытаюсь определить расположение этих заполненных черных прямоугольников с помощью OpenCV.
Черные прямоугольники на бумаге
Я пробовал чтобы найти их контуры, но я думаю, что фоновые линии также распознаются как объекты. Кроме того, прямоугольники...
Я пытаюсь определить расположение этих заполненных черных прямоугольников с помощью OpenCV.
Черные прямоугольники на бумаге
Я пробовал чтобы найти их контуры, но я думаю, что фоновые линии также распознаются как объекты. Кроме того, прямоугольники...
Я работаю над приложением Android, которое сканирует документы с использованием Camerax и OpenCV. Обнаружение документов хорошо работает, когда документ помещается на черный фон, но сбое не работает при размещении на белом или светлом фоне. Я...