Благодаря помощи в этом посте я знаю, как обрезать картинку.
Исходное изображение
Окончательная сборка изображения по следующему сценарию.
Python Используемый сценарий
import cv2
DEBUG = False
image = cv2.imread("test.jpeg")
gray_image = cv2.cvtColor(image,cv2.COLOR_BGR2GRAY)
blurred_gray_image = cv2.blur(gray_image,(21,21))
if DEBUG:
cv2.imwrite("blurred.jpeg", blurred_gray_image)
# See matplotlib graph !
_,thresholded_blurry_image = cv2.threshold(blurred_gray_image,50,255,cv2.THRESH_BINARY)
if DEBUG:
cv2.imwrite("thresholded.jpeg", thresholded_blurry_image)
output, contours, hierarchy = cv2.findContours(thresholded_blurry_image,
cv2.RETR_TREE, cv2.CHAIN_APPROX_SIMPLE)
output = image.copy()
if len(contours) != 0:
c = max(contours, key = cv2.contourArea)
# coordinates of the contour
x,y,w,h = cv2.boundingRect(c)
cv2.rectangle(output,(x,y),(x+w,y+h),(0,255,0),2)
output = cv2.cvtColor(output,cv2.COLOR_BGR2RGB)
output = image[y:y+h, x:x+w]
cv2.imwrite("basic.jpeg", output)
Требуемый четырехугольник
Я бы хотел go сделать шаг вперед: мне нужно найти лучший контур четырехугольника, как в картинка ниже. Затем я хотел бы применить перспективное преобразование, чтобы получить «наиболее реальную плоскую» версию письменного документа.