Обнаружение водяного знака с использованием opencv

Я хочу нарисовать рамку вокруг слова "Удалено" на следующем изображении с помощью opencv и найти координаты.

Я получил изображение выше из следующего кода:

kernel = np.ones((3,3),np.uint8)
dilation = cv2.dilate(img,kernel,iterations =1)
plt.imshow(dilation)

Исходное изображение:

1 ответ

На основе кода, который вы уже написали, вам нужно инвертировать результат и применить findContours().

inv_img = cv2.bitwise_not(dilation)
contours, hierarchy = cv2.findContours(gray_in, cv2.RETR_TREE,cv2.CHAIN_APPROX_SIMPLE)
for cnt in contours:
  rect = cv2.minAreaRect(cnt)
  box = cv2.cv.BoxPoints(rect) # cv2.boxPoints(rect) for OpenCV 3.x
  box = np.int0(box)
  cv2.drawContours(im,[box],0,(0,0,255),2)

Вам нужно посмотреть, какая коробка лучше и какой контур лучше всего подходит. Этот ответ был бы полезен:Python OpenCV Box2D

Другие вопросы по тегам