gpt4 book ai didi

opengl - 如何最好地处理局部阈值 opengl 函数

转载 作者:行者123 更新时间:2023-12-01 02:40:16 26 4
gpt4 key购买 nike

我想拍一些文字的照片,让文字更容易阅读。棘手的部分是初始照片可能有暗区和亮区,我希望 opengl 功能增强所有这些区域中的文本。

这是一个例子。最上面是原图。底部是处理后的图像。

enter image description here

[编辑]
我添加了一个更好的示例图片来说明正在发生的事情。我能够增强文本,但在我没有文本的区域,这个简单的阈值会产生 Blob 噪声(图像左下角)。
如果我回退阈值,那么我会丢失较暗区域(右下角)中的文本。

目前,处理后的图像只拾取了部分文本,而不是全部文本。我使用的原始算法非常简单:
- 在当前像素周围采样 8 个像素(大约 4-5 远的像素似乎效果最好)
- 从这个样本中找出最亮和最暗的像素
- 如果当前像素更接近最暗阈值,则设为黑色,反之亦然

这对于周围的文本似乎非常有效,但是当涉及到非文本时,它提供了非常嘈杂的图像(即使我提供了初始拒绝阈值)

我修改了这个算法以假设文本总是接近黑色。这提供了上面的底部图像,但我再次无法提取我想要的所有文本功能。

最佳答案

在将其作为程序实现之前,您可能想要拍摄源照片并在 GIMP 或其他编辑器中播放它,看看您能做什么。

处理阴影的一种方法是在阈值处理之前运行高通滤波器。

这是您在图像编辑器中的操作方式(手动,没有“高通”过滤器插件):
1.将图像转换为灰度并保存到“layer_A”
2.将“layer_A”复制到“Layer_B”
3.在“Layer_B”中反转颜色
4. 高斯模糊“Layer_B”的半径大于要保留的最大特征。 (模糊半径大于字母)
5. 合并“Layer_A”和“Layer_B”,其中result = "Layer_A" * 0.5 + "Layer_B" * 0.5 .
6. 增加结果图像的对比度。
7. 运行阈值。

Example

在 opengl 中,它将以相同的方式完成(并且没有多层)

它不适用于强烈/清晰的阴影(显然),但它会消除由于页面弯曲等而产生的巨大平滑阴影。

该技术(高通滤波器)经常用于制作无缝纹理,您应该能够通过谷歌(GIMP 无缝纹理高通或 GIMP 高通)找到几个这样的教程和附加信息。

顺便说一句,如果您想提高“可读性”,那么您可能希望保持灰度(同时提高对比度),而不是将其转换为“黑白”(1 位颜色)。尖锐的字母边缘使文本更难阅读。

关于opengl - 如何最好地处理局部阈值 opengl 函数,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/8663004/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com