Я думаю, вы можете использовать контуры для вашего решения. Контуры - это кривая / линия, соединяющая непрерывные точки одинаковой интенсивности.Таким образом, коробка, в которой написан сценарий, представляет собой один контур.Контуры в изображении также имеют отношения, как один контур может быть родителем другого контура (ов).В вашем изображении поле может быть родительским для написанного сценария.
cv2.findContours находит все контуры в изображении, а второй параметр (cv2.RETR_TREE) указывает, какой тип отношений должен быть возвращен,Поскольку у контуров есть иерархия, вполне вероятно, что блок будет в индексе 0 или 1 из списка контуров.
import matplotlib.pyplot as plt
%matplotlib inline
img = cv2.imread('image.png', 0)
ret, thresh = cv2.threshold(img, 127, 255, 0)
image, contours, hierarchy = cv2.findContours(thresh,cv2.RETR_TREE,cv2.CHAIN_APPROX_SIMPLE)
Хотя первый контур (контуры [0]) будет представлять собой прямоугольник, но по какой-то причине это второй.
img_copy = img.copy()
cnt= contours[1]
cv2.drawContours(img_copy, [cnt], -1, color = (255, 255, 255), thickness = 20)
plt.imshow(img_copy, 'gray')
После того, как у вас есть контуры, просто нарисуйте толстую белую линию над контуром, чтобы снять флажок.Вот решение для рисования определенных контуров на изображении
Не беспокойтесь о ограничительной рамке на этих изображениях.Это просто матплотлиб.Ваше изображение - это то, что находится внутри поля координат.