уменьшить неровные края и вывести идеальный алфавит - PullRequest
0 голосов
/ 13 июня 2019

У меня есть входное изображение:

Input1

Я нормализую изображение, а затем преобразовываю его в двоичную форму с помощью OTSU.

import cv2
import numpy as np
import sys
import os
import time
import imutils
import numpy as np
from matplotlib import pyplot as plt
import re
import math
orgImg = cv2.imread(sys.argv[1])
orgHeight,orgWidth,_ = orgImg.shape
image = imutils.resize(orgImg,height=350)
rheight, rwidth,_= image.shape
kernel = np.ones((7,7), np.uint16)
# image = cv2.erode(image, kernel, iterations=1)
image11 = cv2.cvtColor(image, cv2.COLOR_BGR2GRAY) 
# Copy image to new variable
g = image11.copy()
cv2.normalize(g, g, 70, 255, cv2.NORM_MINMAX)
ret,black_mask = cv2.threshold(g,110,255,cv2.THRESH_BINARY+cv2.THRESH_OTSU)
cv2.imshow("image",black_mask)
cv2.imwrite(sys.argv[1]+"thresh.jpg",black_mask)
cv2.waitKey(0)

Выходное изображение:

Output1

В выводе много зубчатых краев. Как мне удалить эти края и получить идеальный «Ca»?

Вывод должен быть примерно таким:

Expected output

P.S. Обратите внимание, что выходное изображение не обязательно должно быть двоичным

1 Ответ

0 голосов
/ 13 июня 2019

Если вы пропустите изменение размера с помощью imutils, результат будет выглядеть следующим образом:

Result

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

Я изменил ваш код и немного его очистил, теперь он выглядит так:

import cv2
import numpy as np
from PIL import Image

orgImg = cv2.imread("ca.png")

image11 = cv2.cvtColor(orgImg, cv2.COLOR_BGR2GRAY)

cv2.normalize(image11, image11, 70, 255, cv2.NORM_MINMAX)
ret, black_mask = cv2.threshold(image11, 110, 255, cv2.THRESH_BINARY + cv2.THRESH_OTSU)

cv2.imshow("Original image", orgImg)
cv2.imshow("Final image", black_mask)
cv2.waitKey(0)

cv2.imwrite("ca_blackmask.png", black_mask)
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...