为什么我没有使用mahotas python模块获得带有灰色背景的好二进制图像?

时间:2013-09-25 14:57:42

标签: python image-processing mahotas

我在带有mahotas库的灰色背景的图像上遇到了一些问题:

实施例:input image

这是代码:

import mahotas as mh
path ="./imagepath/a.jpg"
fork = mh.imread(path)  
bin = fork[:,:,0]
bfork = bin <230

之后我得到了: output image

我有什么办法来获得黑色背景和白色标志? 我尝试使用opencv模块并且很好,但我更喜欢mahotas。

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 个答案:

答案 0 :(得分: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()

Binarized fork