Image 图像增强解决方案
我有大量以下类型/质量的图像: 我想做的是:Image 图像增强解决方案,image,image-processing,imagemagick,imagemagick-convert,Image,Image Processing,Imagemagick,Imagemagick Convert,我有大量以下类型/质量的图像: 我想做的是: 去除噪声(不影响图像的其余部分) 加强线路工作 使用画笔/橡皮擦手动执行此操作不是一个选项,因为图像太多可以使用哪些操作/过滤器来增强这些图像?最简单的方法可能是ImageMagick。由于需要对大量图像应用此操作,因此可以编写脚本来执行此操作 您可以开始使用以下可用于ImageMagick的convert命令的图像操作符: -阈值: 该操作符对输入图像同时应用黑白阈值 -blur: 该操作符可降低输入图像的噪声和细节级别 -锐化: 此操作符
- 去除噪声(不影响图像的其余部分)
- 加强线路工作
使用画笔/橡皮擦手动执行此操作不是一个选项,因为图像太多可以使用哪些操作/过滤器来增强这些图像?最简单的方法可能是ImageMagick。由于需要对大量图像应用此操作,因此可以编写脚本来执行此操作 您可以开始使用以下可用于ImageMagick的
convert
命令的图像操作符:
:-阈值
该操作符对输入图像同时应用黑白阈值
:-blur
该操作符可降低输入图像的噪声和细节级别-锐化
:
此操作符使输入图像锐化
:-黑色阈值
此操作符强制将低于阈值的所有像素变黑,同时保持阈值或高于阈值的所有像素不变
:-白色阈值
此操作符强制将高于阈值的所有像素置为白色,同时保持阈值或高于阈值的所有像素不变
:-形态学
该操作员可以使用各种“方法”修改图像。下面是方法
和扩张
的示例(有二十多种不同的方法可用)。每种方法都可以应用不同的“内核”。下面是内核侵蚀
和diamond
的示例(大约有3打不同的内核可用)kirsch
convert \
http://i.stack.imgur.com/15lOG.png \
-threshold 50% \
50pc-threshold.png
convert \
http://i.stack.imgur.com/15lOG.png \
-threshold 85% \
85pc-threshold.png
第一个图像(左侧)显示第一个命令的输出。第二个图像是第二个命令的结果:
“阈值”加上“模糊”
为了减少锐利的黑白边框,您可能希望“使眼睛更容易看到”,并对输出应用一些额外的模糊:
convert \
http://i.stack.imgur.com/15lOG.png \
-threshold 85% \
-blur 2x1 \
85pc-threshold+blur-2x1.png
“阈值”加上“模糊”加上“锐化”
有关输出,请参见下一幅图像(左侧)。模糊后,可以应用另一轮(或两轮)处理:再次锐化。下面是一条命令:
convert \
http://i.stack.imgur.com/15lOG.png \
-threshold 85% \
-blur 2x1 \
-sharpen 0x3 \
-sharpen 0x3 \
85pc-threshold+blur-2x1+sharpen-0x3+sharpen-0x3.png
相应的输出是最后一个图像(右侧)
“白色阈值”和“黑色阈值”
以下两个命令演示了-white threshold 50%
和-black threshold 50%
的使用:
convert \
http://i.stack.imgur.com/15lOG.png \
-white-threshold 50% \
white-threshold-50pc.png
convert \
http://i.stack.imgur.com/15lOG.png \
-black-threshold 50% \
black-threshold-50pc.png
以下两幅图像显示了生成的图像:
同上,但阈值不同:
convert \
http://i.stack.imgur.com/15lOG.png \
-white-threshold 85% \
white-threshold-85pc.png
convert \
http://i.stack.imgur.com/15lOG.png \
-black-threshold 85% \
black-threshold-85pc.png
“黑色阈值”加上“黑色阈值”
结合两种阈值操作:
convert \
http://i.stack.imgur.com/15lOG.png \
-black-threshold 85% \
-white-threshold 85% \
black-threshold-85pc+white-threshold-85pc.png
convert \
http://i.stack.imgur.com/15lOG.png \
-white-threshold 85% \
-black-threshold 85% \
white-threshold-85pc+black-threshold-85pc.png
如果仔细观察,您将很容易看到最后两个示例命令的输出没有什么不同(它们也与第二个命令的输出相同)
为了获得比上述命令更好的结果,您必须使用相应参数的一些变体(不要总是使用85%
…)
带有-形态学的附加“细化”
我们可以对当前结果之一应用一些“细化”。我将从顶部选择第四个图像/命令:
convert \
http://i.stack.imgur.com/15lOG.png \
-threshold 85% \
-blur 2x1 \
-sharpen 0x3 \
-sharpen 0x3 \
-morphology erode diamond \
85pc-threshold+blur-2x1+sharpen-0x3+sharpen-0x3+erode+diamond.png
新增的-形态侵蚀钻石使用“钻石”形状的“内核”侵蚀白色区域,这意味着黑线变得更厚。您可以在下面的第一张图片中看到这一点。但这不是我们想要的效果。这就是为什么我们在-morphology
之前应用一个-negate
操作,然后再应用另一个-negate
操作的原因:
convert \
http://i.stack.imgur.com/15lOG.png \
-threshold 85% \
-blur 2x1 \
-sharpen 0x3 \
-sharpen 0x3 \
-negate \
-morphology erode diamond \
-negate \
85pc-threshold+blur-2x1+sharpen-0x3+sharpen-0x3+negate+erode+diamond.png
两个输出图像如下所示:
我们可以使用放大
(放大白色),而不是使用放大
(放大白色):
要查看所有内置内核形状的列表,请运行convert-list kernel
。我们可以用“柯尔希”代替菱形的形态核:
convert \
http://i.stack.imgur.com/15lOG.png \
-threshold 85% \
-blur 2x1 \
-sharpen 0x3 \
-sharpen 0x3 \
-morphology dilate kirsch \
85pc-threshold+blur-2x1+sharpen-0x3+sharpen-0x3+dilate+kirsch.png
要获得所有可用内核的完整功能集,您可以尝试以下方法:
for i in $(convert -list kernel); do \
convert \
http://i.stack.imgur.com/15lOG.png \
-threshold 85% \
-blur 2x1 \
-sharpen 0x3 \
-sharpen 0x3 \
-morphology dilate ${i} \
85pc-threshold+blur-2x1+sharpen-0x3+sharpen-0x3+dilate+${i}-kernel.png \
done
要了解有关各种-morphics
操作的更多信息,请参阅此处:。要获得形态学内核的完整列表,请运行convert-listmography
ImageMagick中提供了更多的处理选项。你应该自己去探索它们。。。从这里开始了解他们:
试试gimp,它是一个photoshopimitation@RachelGallen:您是否注意到OP写了“手动操作…不是选项”?!?如果您能够概述如何以自动、脚本化的方式而不是手动的方式使用Gimp,那么您的评论将更有帮助……这很好,但是现在输出中的行看起来很粗。有没有其他办法让它更接近原始的?你有没有在自己的周围玩参数?或者你在等待一个现成的命令行,它是由一个对你的想法毫无头绪的人设计的,这样的结果是可以接受的?!?(最起码你可以做的是,添加一个示例结果图像,显示你在手动操作时所获得的结果…)这是一个很好的答案,并给出了合理的建议!我投你一票。您可以尝试在输出文件名之前添加一个-Octhagon
,或使用Octhagon:3
,以获得更好的效果。@MarkSetchell:请随意编辑我的答案,或者更好:使用此附加操作添加您自己的答案。顺便说一句,我想如果没有一个额外的-negate
,简单地添加一个-morphology-corrove
将不起作用。另外,octagon
是probab
for i in $(convert -list kernel); do \
convert \
http://i.stack.imgur.com/15lOG.png \
-threshold 85% \
-blur 2x1 \
-sharpen 0x3 \
-sharpen 0x3 \
-morphology dilate ${i} \
85pc-threshold+blur-2x1+sharpen-0x3+sharpen-0x3+dilate+${i}-kernel.png \
done