Open-cv, как определить большой прямоугольник с текстом на изображении, которое содержит два прямоугольника, и сохранить его как другое изображение? - PullRequest
0 голосов
/ 21 января 2019

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

То, что я пробовал, это

import cv2
import numpy as np
img = cv2.imread('napis.jpg')
h,w = img.shape[:2]
mask = np.zeros((h,w), np.uint8)
gray = cv2.cvtColor(img,cv2.COLOR_BGR2GRAY)

_, thresh = cv2.threshold (серый, 0,255, cv2.THRESH_BINARY_INV + cv2.THRESH_OTSU)

_, contours, hierarchy = cv2.findContours(thresh, 
cv2.RETR_TREE,cv2.CHAIN_APPROX_NONE)

cnt = max(contours, key=cv2.contourArea)
cv2.drawContours(mask, [cnt], 0, 255, -1)
res = cv2.bitwise_and(img, img, mask=mask)
mask = np.zeros((h,w), np.uint8)
gray = cv2.cvtColor(res,cv2.COLOR_BGR2GRAY)

thresh = cv2.threshold (серый, 0,255, cv2.THRESH_BINARY + cv2.THRESH_OTSU)

_, contours, hierarchy = 
cv2.findContours(thresh,cv2.RETR_TREE,cv2.CHAIN_APPROX_NONE)
cnt = max(contours, key=cv2.contourArea)
cv2.drawContours(mask, [cnt], 0, 255, -1)
res = cv2.bitwise_and(img, img, mask=mask)
x,y,w,h = cv2.boundingRect(cnt)
cv2.rectangle(res,(x,y),(x+w,y+h),(255,255,255),1)
final_image = res[y:y+h+1, x:x+w+1]
cv2.imwrite('img', final_image)
cv2.waitKey(0)

cv2.destroyAllWindows()

Эти две строки в середине также являются частью кода, и они расположены по порядку.

...