Почему я не получаю хорошее двоичное изображение с серым фоном с помощью модуля mahotas python?
У меня проблемы с изображением на сером фоне с библиотекой mahotas:
Пример:
Это код:
import mahotas as mh
path ="./imagepath/a.jpg"
fork = mh.imread(path)
bin = fork[:,:,0]
bfork = bin <230
После этого я получил это:
Что я делаю, чтобы получить черный фон и белый знак? Я попробовал в модуле opencv и было хорошо, но я предпочитаю махотас.
import cv2
path ="./imagepath/a.jpg"
ow = int ((oshape[0]/100 )*7 )
oh = int ((oshape[0]/100 )*7 )
gray = cv2.imread(path,0)
element = cv2.getStructuringElement(cv2.MORPH_CROSS,(ow,oh))
graydilate = cv2.erode(gray, element)
ret,thresh = cv2.threshold(graydilate,127,255,cv2.THRESH_BINARY_INV)
bin = thresh
1 ответ
Решение
Вы делаете не так, как в версии opencv. Если вы это сделаете, вы получите желаемые результаты:
fork = mh.imread(path)
bin = fork[:,:,0]
bin = mh.erode(bin)
bin = (bin < 127)
Шаг эрозии отсутствовал, и порог был другим.
from matplotlib import pyplot as plt
plt.imshow(bin)
plt.gray()