gpt4 book ai didi

image-processing - 我应该使用哪些处理步骤来清洁线条图的照片?

转载 作者:行者123 更新时间:2023-12-03 21:07:50 27 4
gpt4 key购买 nike

我通常使用 100% 对比度和一些亮度调整来调整截止点的方法通常可以很好地清理小子电路或方程式的照片,以便在 E&R.SE 上发布,但有时它并不是那么好,就像这张图片:

alt text

除了对比度(或代替)之外,我还可以使用哪些其他方法来提供更一致的输出?

我期待一个相当笼统的答案,但我可能会使用 ImageMagick 和/或 PIL (Python) 在脚本中实现它(我可以将文件转储到),所以如果你有任何特定于它们的东西,它会受到欢迎。

理想情况下,更好的源图像会很好,但我偶尔会在其他人的图像上使用它来添加一些润色。

最佳答案

第一步是在考虑白平衡问题的同时均衡图像中的照明差异。这里的理论是有限区域内图像的最亮部分代表白色。通过预先模糊图像,我们消除了图像中噪声的影响。

from PIL import Image
from PIL import ImageFilter
im = Image.open(r'c:\temp\temp.png')
white = im.filter(ImageFilter.BLUR).filter(ImageFilter.MaxFilter(15))

alt text
下一步是从 RGB 输入创建灰度图像。通过缩放到白点,我们可以纠正白平衡问题。通过取 R、G、B 的最大值,我们不再强调任何不是纯灰色的颜色,例如网格的蓝线。此处显示的第一行代码是一个虚拟代码,用于创建正确大小和格式的图像。
grey = im.convert('L')
width,height = im.size
impix = im.load()
whitepix = white.load()
greypix = grey.load()
for y in range(height):
for x in range(width):
greypix[x,y] = min(255, max(255 * impix[x,y][0] / whitepix[x,y][0], 255 * impix[x,y][1] / whitepix[x,y][1], 255 * impix[x,y][2] / whitepix[x,y][2]))

这些操作的结果是图像具有大部分一致的值,并且可以通过简单的阈值转换为黑白。
alt text

编辑:很高兴看到一些竞争。 nikie提出了一种非常相似的方法,使用减法而不是缩放来消除白电平的变化。我的方法会增加光线不足区域的对比度,而 nikie 的方法不会 - 您更喜欢哪种方法取决于您希望保留的光线不足区域中是否有信息。

我尝试重新创建这种方法导致:
for y in range(height):
for x in range(width):
greypix[x,y] = min(255, max(255 + impix[x,y][0] - whitepix[x,y][0], 255 + impix[x,y][1] - whitepix[x,y][1], 255 + impix[x,y][2] - whitepix[x,y][2]))

alt text

我正在研究多种技术以提供更好的结果,但还没有完全准备好。

关于image-processing - 我应该使用哪些处理步骤来清洁线条图的照片?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/4632174/

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