0

我正在用 C# 开发文本分割程序,我想使用直方图来分割文本。如何使用来自 aforge 库的直方图?我想根据阈值切碎。还是我只开发

verticalIntensityStatistics verticalintensity = new VerticalIntensityStatistics(bitmap);

Histogram histogram = verticalintensity.Gray;

现在如何在直方图低于阈值的情况下剪切文本并更改原始图像。

我也想在图表上显示这个直方图。

4

1 回答 1

1

我创建了一个类似的任务。您可以获取直方图值:Histogram.values

返回的 int [] 与图像具有相同的宽度(垂直投影)或高度(水平投影)。

一旦你有了 Int 数组,你就可以计算出简单的平均值:

整数平均 = 0;

Foreach(数组中的 int elem):平均 += elem;

平均值 = 平均值 / 数组长度;

所以现在你可以在值低于你的平均值时迭代你的数组。

int startWidth = 0;

int endWidth = Array.lenght;

while ( Array[ startWidth ] < average) startWidth++;

while ( Array[ endWidth ] < average) endWidth--;

//这里有包含一些文本的新宽度。

//如果你想分割包含的文本,你可以再次迭代代码。

//直到你得到一个单词/字母

于 2013-06-24T14:24:16.087 回答