【发布时间】:2016-10-29 15:11:39
【问题描述】:
我有一些带有文本的二进制图像,如下所示:
图片 1:
图片 2:
而对应的水平投影为:
看来我可以通过水平投影进行分割,但是如何呢?
提前致谢!
PS:做投影的代码:
from matplotlib import pyplot as plt
import pylab
(rows,cols)=img.shape
h_projection = np.array([ x/255/rows for x in img.sum(axis=0)])
plt.plot(range(cols), h_projection.T)
pylab.savefig(outfile, bbox_inches='tight')
plt.clf()
为了消除误解,当我说水平投影时,我的意思是a projection made on a plane parallel to the horizon.
【问题讨论】:
-
在投影上使用高值(例如 0.95)的阈值。然后你有一个 1D 掩码,其中有 sequences 零(假),你有字母和其他东西。和那些(真的)你有所有白色的coulmns。真实序列的开始和结束索引告诉您白色列的开始和结束位置。请参阅here 以获取提示(在 C++ 中)
-
谢谢@Miki。我稍后会尝试。我觉得文本和其他东西最显着的不同是文本区域在投影图像上具有快速变化的值,所以我想使用这个功能来找到文本区域。但不幸的是我不知道怎么做。