我遇到了二值化方法的问题。 我有文字的图像,我想要二值化。 我希望文本最终变成白色,但是文本中的图像比背景更暗,并且文本中的图像比背景更暗。
我想将这些图像二值化,但我希望二值化图像中的文本为白色。
顺便说一句,我正在使用此代码对图像进行二值化。此代码适用于文本比背景暗的图像,但对于不比背景暗的文本不好。我想我需要一种方法来知道文本是否比背景更暗或更暗,以便反转或不反转二值化。
umb = graythresh(originalImage);
binaryImage =(~im2bw(originalImage,umb));
我该怎么做?
非常感谢您的帮助
答案 0 :(得分:1)
我想到了两种可能的解决方案:
<强>解决方法1:强>
使用rgb2gray函数生成灰度图像。
从灰度图像生成直方图,并忽略透明像素。你可以使用imhist功能。
检查直方图最大值是多少。如果值很高 - 背景可能很浅,文本应该比背景更暗。在这种情况下 - 拍摄负片图像(例如,通过使用imcomplement),然后将其二值化。否则 - 你可以按原样进行二值化。
解决方案2:
解决方案声称图像足够简单,即除了字母之外没有很多连接组件。