pythonmhotas:应用阈值过滤器并将图像保存为pgn

2024-06-16 14:24:44 发布

您现在位置:Python中文网/ 问答频道 /正文

我遇到了一个从图像中提取字符的代码:

示例:

原始图像 original 已处理图像 final

我正在应用一堆过滤器,试图从这些符号中提取特定的字符,并将它们发送到我的OCR软件(高斯滤波器、水溢出和阈值)。在

我想对图像应用otsu阈值过滤器,但当我试图保存图像时,它被转换成float64,使其无法作为png保存:

seeds,nseeds = mahotas.label(dnaf < T)

labeled = mahotas.cwatershed(dnaf.max() - dnaf, seeds)

labeled = labeled.astype('uint8')

T = mahotas.thresholding.otsu(labeled)

pylab.imshow(labeled > T)
pylab.show()

mahotas.imsave('py.png', labeled > T)

给了我

^{pr2}$

如果我尝试创建一个中间变量来保存应用了阈值的图像,图像将变为空白:

seeds,nseeds = mahotas.label(dnaf < T)

labeled = mahotas.cwatershed(dnaf.max() - dnaf, seeds)

labeled = labeled.astype('uint8')

T = mahotas.thresholding.otsu(labeled)

final = labeled > T

final = final.astype('uint8')

pylab.imshow(final)
pylab.show()

mahotas.imsave('py.png', final)

final

我能做些什么来解决这个问题?在


Tags: 图像过滤器png阈值字符finalmahotaslabeled
1条回答
网友
1楼 · 发布于 2024-06-16 14:24:44

(这里是马索塔的作者):

我猜图像是正确保存的,但你看错了。排队之后

final = final.astype('uint8')

final是一个带有0s和{}s的uint8图像,因此“白色”位非常暗。试着把它乘以255:

^{pr2}$

或者像这样保存它,但是把它想象成一个拉伸的版本:

pylab.imshow(255 * final)
pylab.show()

相关问题 更多 >