Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/image-processing/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Image 图像增强解决方案_Image_Image Processing_Imagemagick_Imagemagick Convert - Fatal编程技术网

Image 图像增强解决方案

Image 图像增强解决方案,image,image-processing,imagemagick,imagemagick-convert,Image,Image Processing,Imagemagick,Imagemagick Convert,我有大量以下类型/质量的图像: 我想做的是: 去除噪声(不影响图像的其余部分) 加强线路工作 使用画笔/橡皮擦手动执行此操作不是一个选项,因为图像太多可以使用哪些操作/过滤器来增强这些图像?最简单的方法可能是ImageMagick。由于需要对大量图像应用此操作,因此可以编写脚本来执行此操作 您可以开始使用以下可用于ImageMagick的convert命令的图像操作符: -阈值: 该操作符对输入图像同时应用黑白阈值 -blur: 该操作符可降低输入图像的噪声和细节级别 -锐化: 此操作符

我有大量以下类型/质量的图像:

我想做的是:

  • 去除噪声(不影响图像的其余部分)
  • 加强线路工作

使用画笔/橡皮擦手动执行此操作不是一个选项,因为图像太多可以使用哪些操作/过滤器来增强这些图像?

最简单的方法可能是ImageMagick。由于需要对大量图像应用此操作,因此可以编写脚本来执行此操作

您可以开始使用以下可用于ImageMagick的
convert
命令的图像操作符:

  • -阈值

    该操作符对输入图像同时应用黑白阈值

  • -blur

    该操作符可降低输入图像的噪声和细节级别

  • -锐化

    此操作符使输入图像锐化

  • -黑色阈值

    此操作符强制将低于阈值的所有像素变黑,同时保持阈值或高于阈值的所有像素不变

  • -白色阈值

    此操作符强制将高于阈值的所有像素置为白色,同时保持阈值或高于阈值的所有像素不变

  • -形态学

    该操作员可以使用各种“方法”修改图像。下面是方法
    扩张
    侵蚀
    的示例(有二十多种不同的方法可用)。每种方法都可以应用不同的“内核”。下面是内核
    diamond
    kirsch
    的示例(大约有3打不同的内核可用)

您可以在一个命令行中应用它们中的一个,也可以应用其中几个的适当组合。玩一些变化,看看哪个最适合你

“门槛” 以下是几个命令示例及其输出:

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