弗雷德的ImageMagick脚本

2022-02-19 02:23:36

授权:如需在商业(营利)环境或非免费应用程序中使用我的脚本,请联系我(Fred Weinhaus)了解授权安排。我的电子邮件地址是alink.net的fmw。

如果你:1)重新发布,2)将这些脚本合并到其他免费应用程序中,或3)用另一种脚本语言重新编程,那么你必须联系我获得许可,尤其是如果结果可能用于商业或营利环境。

无论脚本中是否有说明,使用仅限于上述许可协议。它还以从属方式受制于ImageMagick许可证,该许可证可在以下网址找到:http://www.imagemagick.org/script/license.php

请阅读我主页上的使用说明,以便正确安装和自定义我的脚本。

每个脚本的详细信息和示例都可以在上面和下面链接的单独页面上找到,以及所有脚本的摘要列表。

您还可以在JqMagic的交互式环境中尝试其中的许多方法。这是与Jd Audibert的合作。

要下载脚本,请转到该脚本的示例页面,然后单击链接。这些链接由计数器脚本控制,并设置为在单击一次左键后自动下载。

这些脚本是bash unix shell脚本,应该可以在Linux和Mac OSX上使用IM 6.3.5.0或更高版本。请注意,它们不是为多页/多层/多帧图像设计的。使用指针:确保已安装unix计算器bc。这是安装unix时可能必须选择的选项。

更改名称以删除后缀。dms(如果存在)并可选地替换为。嘘

通过在shell终端窗口中键入:type-a convert,找到IM(convert)所在位置的完整路径

如果type-a convert返回多个路径,请在shell终端窗口中键入:path2/convert-version,其中path2是找到的每个路径。决定要使用哪个版本的即时通讯。

修改PATH环境变量,使其包含IM(convert)所在位置的完整路径(通常为/usr/bin或/usr/local/bin)。这可以通过编辑您的。档案文件。或者,在注释和第一次使用任何IM命令之间的某个位置编辑脚本,例如在默认值部分下方添加以下两行:imdir=";路径2";#(如imdir=";/usr/local/bin";或imdir=";/usr/bin";)路径="${imdir}:${PATH}";

为了避免重击,只需使用scriptname(.sh)。。。设置包含脚本位置的路径。我强烈建议您创建一个包含所有脚本的目录,并将该目录的路径放入path环境变量中。这也将避免调用我的任何其他脚本的脚本以及有关查找我的脚本的消息出现问题。

(可选)编辑脚本,将默认目录(位于默认部分之后)从dir=";更改为默认目录" to dir="/tmp和#34;并确保它具有读/写权限。

如果文件名中有空格,则需要在几个地方编辑脚本,直到我有时间查看并修复所有脚本。查找在参数补漏白部分末尾定义了infile和outfile(maskfile或任何其他文件)的位置。确保将包含$1、$2等文件的任何声明用双引号括起来,例如infle="$1", 等

查找任何出现的$infle或$outfile,并用双引号将其括起来,如"$填充";,等

在某些Linux系统上,当使用-help选项时,可能会出现文档行重复的问题。如果是这种情况,请尝试分别在脚本顶部注释部分下方的usage1()和usage2()函数中更改以下两行,如下所示(由Stefan Vorkoter和Ted Baker建议):sed>&;2-e和#39;1、/^######/d/^###/g、 /^#/!Qs/^#/;s/^/;4美元p'"$PROGDIR/$PROGNAME";致:sed-e';1、/^####$/d;/^###$/$Ds/^#/;s/^/'"$PROGDIR/$PROGNAME";

sed>&;2-e和#39;1、/^######/d/^######/g、 /^#/!Qs/^#*/;s/^/;4美元p'"$PROGDIR/$PROGNAME";致:sed-e';1、/^####$/d;/^####$/$Ds/^#*/;s/^/'"$PROGDIR/$PROGNAME";

或sed>&;2-n-e';1、/^######/d/^###/g、 /^#/!Qs/^#/;s/^/;4美元p'"$PROGDIR/$PROGNAME";致:sed-e';1、/^####$/d;/^###$/$Ds/^#/;s/^/'"$PROGDIR/$PROGNAME";

sed>&;2-n-e';1、/^######/d/^######/g、 /^#/!Qs/^#*/;s/^/;4美元p'"$PROGDIR/$PROGNAME";致:sed-e';1、/^####$/d;/^####$/$Ds/^#*/;s/^/'"$PROGDIR/$PROGNAME";

我的许多脚本都使用Unix工具AWK进行处理。在某些Linux系统上,AWK不可用,并加载不同类型的AWK,这无法正常工作。将GAWK加载到系统中似乎可以解决这个问题。AWK然后利用GAWK。

这些脚本可以与PHP exec命令一起使用。使用指针:确保已安装unix计算器bc。这是安装unix时可能必须选择的选项。

更改名称以删除后缀。dms(如果存在)并可选地替换为。嘘

通过在shell终端窗口中键入:type-a convert,找到IM(convert)所在位置的完整路径

如果type-a convert返回多个路径,请在shell终端窗口中键入:path2/convert-version,其中path2是找到的每个路径。决定要使用哪个版本的即时通讯。

修改PATH环境变量,使其包含IM(convert)所在位置的完整路径(通常为/usr/bin或/usr/local/bin)。这可以通过编辑您的。档案文件。或者,在注释和第一次使用任何IM命令之间的某个位置编辑脚本,例如在默认值部分下方添加以下两行:imdir=";路径2";#(如imdir=";/usr/local/bin";或imdir=";/usr/bin";)路径="${imdir}:${PATH}";

编辑脚本,将默认目录(位于默认部分之后)从dir=";更改为默认目录" to dir="/tmp和#34;并确保它具有读/写权限。

在exec命令中,使用bash/fullpathto/scriptname(.sh)arguments/fullpathto/inputimage/fullpathto/outputimage。注意";巴什";可能需要也可能不需要避免bash,只需使用scriptname(.sh)。。。设置包含脚本位置的路径。我强烈建议您创建一个包含所有脚本的目录,并将该目录的路径放入path环境变量中。这也将避免调用我的任何其他脚本的脚本以及有关查找我的脚本的消息出现问题。

如果文件名中有空格,则需要在几个地方编辑脚本,直到我有时间查看并修复所有脚本。查找在参数补漏白部分末尾定义了infile和outfile(maskfile或任何其他文件)的位置。确保将包含$1、$2等文件的任何声明用双引号括起来,例如infle="$1", 等

查找任何出现的$infle或$outfile,并用双引号将其括起来,如"$填充";,等

对于FreeBSD用户,如果脚本没有运行,您可能需要更改我脚本顶部的第一行代码:Windows用户可以运行我的脚本,如果他们安装了unix Cygwin system For Windows,然后安装IM Cygwin二进制文件。用户snibgo在其网站上提供了Cygwin安装、相关脚本语法和示例的详细说明,网址为http://im.snibgo.com/cygwin.htm.他写的一个简短的提纲可以在http://www.imagemagick.org/discourse-server/viewtopic.php?f=26&t=25910&;开始=30#p113836。他还发现了一个bug和修复程序,详情见https://github.com/ImageMagick/ImageMagick/issues/4638.非常感谢snibgo提供的这份出色的文档。

Wolfgang Hugemann在他的优秀页面“Windows下的使用”中提供了另一个在Cygwin下在Windows上使用bash shell脚本的指南

Windows 10(64位)用户也可以运行我的脚本,而无需Cygwin。Bruce Rusk报告:所需要的只是通过apt/apt get安装Unix bc工具和Imagemagick。其他一切都是开箱即用的,不需要更改路径变量。了解如何在Windows 10上安装和使用Linux Bash Shell。

我最早的脚本是在Mac OS 10.4x上的ImageMagick-6.3.5.0下开发的。我一直试图通过IM版本的更改来更新它们。所有这些都是使用Q16 IM开发的。我不知道它们与旧版本的ImageMagick、其他Q级别或其他版本的Unix有多兼容。注意:从IM 6.3.5.7开始,不推荐使用-matte/+matte,而使用-alpha set或on/-alpha off。因此,我的许多脚本可能无法使用之前的IM版本,除非用不推荐的语法替换。

使用风险自负。论证测试可能不是万无一失的,我也不对使用它们可能出现的任何问题承担任何责任。

我要感谢Anthony Thyssen对我所有关于IM和Unix的新手问题的耐心。他的回答非常宝贵。

我的背景涉及图像处理,专业是arial摄影的图像透视变换。有关详细信息,请参见我的个人信息页面。

我还写了一个数字图像过滤教程(2MB PDF)。它用更多数学细节补充了以下脚本的描述:二项式、导数、梯度、拉普拉斯、statsfilt、等噪声、夏普和空间。

我还用ImageMagick创建了一个傅里叶变换处理教程。它用更多数学细节补充了以下脚本的描述:spectrum、fftconvol、fftdeconvol、fftfilter、倒谱、camerablur、CameradBlur、NormalCrossCorr和notch。

欢迎评论和错误报告。我的联系方式是alink dot net的fmw

如果您发现这些脚本中的任何一个特别有用,请让ImageMagick的人员知道。也许他们会同意将其作为IM功能来实现。

注意:我经常修复脚本中发现的问题或进行改进。因此,请检查下面最后修改的日期或脚本中的修订日期以获取更新。

条纹:2022年1月19日-添加了新脚本,将条纹边框添加到图像中。

织造:2021年12月3日-添加新的脚本来应用一个不规则的线性编织变形的图像。

LogoLime: 2021年7月31日-添加了新的脚本来执行笛卡尔来记录极坐标变换或反转。

vividisi:2021年3月5日-添加了新的脚本来增强图像中的颜色。

WordPro:2021年2月28日-添加了一个新的脚本,根据对数变换来调整图像的大小。

不饱和度色调:2020年8月17日-添加了新的脚本来对图像中给定的色调(范围)进行去饱和度。

midgradient:2020年5月14日-添加了新脚本,以创建具有可调中间色位置的双色渐变。

白平衡:2020年3月31日-添加了新脚本,根据灰色世界方法对图像应用白平衡。

取消旋转2:2019年10月3日-添加了新脚本,可以自动取消旋转图像并修剪周围的边框。

trim2detail:2019年8月24日-添加了新脚本,将图像修剪到图像周围的边框';这是主要内容。

rangethresh:2019年8月16日-添加了新脚本,使用输入每个通道的范围值将图像转换为二进制。

textetch:2019年8月15日——添加了新脚本,将文本添加到图像中,以模拟玻璃上的蚀刻。

shapecompare:2019年8月9日——添加了新脚本来比较两幅图像#39;使用从Hu图像矩计算的度量进行形状。

bokeh:2019年5月19日-添加了新脚本,将bokeh模糊效果应用于图像。

打字机:2019年5月5日-添加了新脚本,以创建打字机风格的文本动画。

绿屏:2019年4月30日-添加新脚本以删除绿屏图像中的背景绿色。

结晶:2019年4月25日-修改为添加新脚本,在图像中创建随机的晶体状区域。

T恤:2019年1月4日-修改为添加缩放选项,以适应参数和图像不透明度。

使用自适应空间细分颜色缩减技术自动将图像阈值设置为二进制(b/w)格式。

生成3D长方体任意方向的透视图,并在其每一侧粘贴图片

在旋转的透视图中,将图像环绕在盒子的正面、左侧或右侧

将图像大小调整为特定大小,允许裁剪或填充以处理纵横比的变化。

将文本自动放置在颜色变化最小的指定方形区域中。

修改图像以自动在全黑和全白之间拉伸动态范围,并自动应用伽马校正。

修改一幅图像,使其亮度、对比度和饱和度与另一幅图像的亮度、对比度和饱和度相匹配

使用卷积核生成高通或低通滤波图像,卷积核的权重来自二项式系数。

使用运动模糊或镜头散焦的理想模糊滤波器在频域中模糊图像。

使用运动模糊或镜头散焦的理想去模糊滤波器在频域中对图像进行去模糊。

创建倒谱来描述图像中相机类型模糊的类型、数量和方向。

根据直方图两端的剪辑量,将图像的通道拉伸为全黑和全白。

根据直方图两端的剪辑量,将图像的通道拉伸为全黑和全白。

使用加权组合将图像中的颜色通道混合到单个灰度图像中。

将图像中的颜色通道混合到灰度图像中,然后对其着色。

在图像中定位模糊值内与指定颜色最接近的像素的第一个位置和/或最后一个位置。

在图像中创建余弦钟形锥形alpha通道,并可选地将图像混合到背景图像中。

从一组断点生成平滑插值的曲线映射查找表,并将其应用于图像

将圆柱体变形应用于图像,使图像环绕圆柱体

使用置换贴图和脚本cylinderize提供的参数将圆柱体变形应用于图像

计算点积相关曲面,以查找小图像在大图像中最匹配的位置。

提取图像中的边缘,并可选地将其与图像合成,以创建有趣的效果

红色熵=0.92939绿色熵=0.983668蓝色熵=0.980503平均RGB熵=0.96452

从带有可选垂直透视校正的线性鱼眼图像生成条形全景图像。

修改图像,使其看起来像是通过纹理和/或瓷砖玻璃观看的。

修改一幅图像,尝试将其直方图和饱和度与另一幅图像的直方图和饱和度匹配

生成一个输出图像,该图像由图像每个通道的直方图组成,带有标签和颜色表示方案选项。

使用Hough变换技术从二值边缘图像计算并显示直线。

将图像裁剪成矩形,只需修剪任何形状不规则的外部边界颜色。

将单个图像的通道或一组多个图像的每个图像交错。

创建对称的柔膝形曲线贴图查找表,并将其应用于图像

修改图像以仅显示指定颜色范围内的像素。

对图像应用矩形(笛卡尔)到对数极坐标变换或对数极坐标到矩形(笛卡尔)变换

基于从用户指定的图像坐标确定的颜色隔离图像的连续区域。

将图像中的一组颜色映射或转换为另一组颜色

将RGB图像转换为仅保留每个像素处具有最大值的通道

对图像执行二值或灰度形态学操作,包括放大、腐蚀、打开和关闭。

计算归一化互相关曲面,以找到小图像在大图像中最匹配的位置。

在频域中为图像创建并应用陷波滤波器,以去除抖动模式和其他常规噪声模式。

通过分析和线性拉伸图像,增强图像中亮度值和可选饱和度值的动态范围';s直方图。

变换图案图像,将其放置在某件衣服或装备的图像上

使用从装备脚本导出的置换和照明图像,变换图案图像,将其放置在某件衣服或装备的图像上

计算相位相关曲面,以找到小图像在大图像中最匹配的位置

将图像的42相浮点值转换为168位的字符串

对图像应用矩形(笛卡尔)到极坐标变换或极坐标到矩形(笛卡尔)变换

使用彩虹色变换从灰度图像生成伪彩色图像或伪彩色动画。

自动将图像阈值设置为累积直方图上指定百分比的二进制(b/w)格式。

在白色背景上创建由中等大小的黑色随机斑点形状组成的图像。

修改图像,使其(灰度)直方图具有高斯分布,有时称为正态分布或钟形分布。(迄今为止我发现的最好的自动级别功能)

使用相对于颜色表贴图图像的三维颜色距离度量重新映射图像中的颜色。

计算均方根相关曲面,以找到小图像在大图像中最匹配的位置。

通过提供旋转角度对图像应用透视失真,并自动缩放到与输入图像相同的大小

阈值图像(包括)介于灰度范围之间,并且可选地在阈值范围内和/或之外着色。

生成两个部分图像的并排附加,并使用一个选项设置附加中使用的每个图像的数量的动画。

创建纹理图案,并可选地将其应用于输入图像的背景

E

......