Я отсканировал копию страницы, состоящей из нескольких вопросов. Теперь я хочу вырезать отдельные вопросы индивидуально. пример:
Я использую следующую логику: 1. Поиск контуров.
kernal = np.ones((2, 20), np.uint8)
img_dilation = cv2.dilate(self.img, kernal, iterations=1)
im2, contr, _ = \
cv2.findContours(img_dilation.copy(), cv2.RETR_EXTERNAL, cv2.CHAIN_APPROX_SIMPLE)
sorted_ctrs = sorted(contr, key=lambda ctr: cv2.boundingRect(ctr)[0])
- Теперь мы знаем, что номера вопросов - это места, из которых мы хотим вырезать изображение, и все числа лежат перед полем .. Так что вырезание изображения в точке, где координата x обратного отсчета меньше определенного поля, было бы хорошим местом для Начать с.
Но проблема в том, что эти номера вопросов не всегда обводятся контурами.
Есть ли другие более эффективные и точные способы вырезать вопросы со всей страницы.