类似于您在链接中显示的低通滤波器的带通滤波器将是方形图像的黑色背景上的白色环。环的内半径和外半径决定了要通过的频率。在 ImageMagick 中,您可以这样做:
输入:
创建环形图像:
convert lena-1.png -fill black -colorize 100 \
-fill white -draw "translate 64,64 circle 0,0 0,50" \
-fill black -draw "translate 64,64 circle 0,0 0,20" \
-alpha off -blur 0x1 \
ring.png
使用拉伸到全动态范围进行 FFT 处理:
convert lena-1.png -fft \
\( -clone 0 ring.png -compose multiply -composite \) \
-swap 0 +delete -ift -auto-level \
lena_bp.png
增益为 10 倍的交替处理:
convert lena-1.png -fft \
\( -clone 0 ring.png -compose multiply -composite \) \
-swap 0 +delete -ift -evaluate multiply 10 \
lena_bp.png
由于我不知道他们在 ImageJ 或 Fiji 中编码了什么,并且您没有显示任何输出,我只能猜测可能等效的是内半径和外半径在距中心 3 和 40 像素处。此外,我在动态范围内再次添加了 10 倍的增益,以使其更加明显:
convert lena-1.png -fill black -colorize 100 \
-fill white -draw "translate 64,64 circle 0,0 0,40" \
-fill black -draw "translate 64,64 circle 0,0 0,3" \
-alpha off -blur 0x1 \
ring.png
convert lena-1.png -fft \
\( -clone 0 ring.png -compose multiply -composite \) \
-swap 0 +delete -ift -evaluate multiply 10 \
lena_bp.png
请注意,我稍微模糊了环以减少“振铃”伪影。 (见https://en.wikipedia.org/wiki/Ringing_artifacts)。许多低通、高通和带通滤波器具有更强/更长的锥度,类似于增加模糊。有专门设计的锥度,例如巴特沃斯。 (见https://en.wikipedia.org/wiki/Butterworth_filter)
我有来自 ImageMagick 的 FFT 文档的扩展版本,地址为 http://www.fmwconcepts.com/imagemagick/fourier_transforms/fourier.html(请注意,一些 Jinc 过滤有点过时了。因为我写了那个,Imagemagick 在 -fx 中实现了 Jinc 函数)
这里有一小部分命令可以用 Unix 语法来完成。如果您不想创建 +write ring.png,请删除它。此代码仅限于方形图像。
ImageMagick 6:
inner=3
outer=40
infile="lena-1.png"
cent=`convert "$infile" -format "%[fx:floor((w-1)/2)]" info:`
inname=`convert "$infile" -format "%t" info:`
suffix=`convert "$infile" -format "%e" info:`
convert "$infile" \
\( +clone -fill black -colorize 100 \
-fill white -draw "translate $cent,$cent circle 0,0 0,$outer" \
-fill black -draw "translate $cent,$cent circle 0,0 0,$inner" \
-alpha off -blur 0x1 +write ring.png \
-write mpr:bpass +delete \) \
-fft \( -clone 0 mpr:bpass -compose multiply -composite \) \
-swap 0 +delete -ift -evaluate multiply 10 \
${inname}_bandpass_${inner}_${outer}.$suffix
ImageMagick 7(只有一个命令行):
inner=3
outer=40
infile="lena-1.png" \
magick "$infile" \
-set option:cent "%[fx:floor((w-1)/2)]" \
-set filename:fn "%t_bandpass_${inner}_${outer}.%e" \
\( +clone -fill black -colorize 100 \
-fill white -draw "translate "%[cent],%[cent]" circle 0,0 0,$outer" \
-fill black -draw "translate "%[cent],%[cent]" circle 0,0 0,$inner" \
-alpha off -blur 0x1 +write ring.png \
-write mpr:bpass +delete \) \
-fft \( -clone 0 mpr:bpass -compose multiply -composite \) \
-swap 0 +delete -ift -evaluate multiply 10 \
"%[filename:fn]"
如果您的意思是带增强(带增强)而不是带通,那么您将结果与原始结果相加(-compose 加 -composite)。在 ImageMagick 6 中,这将是:
inner=3
outer=40
infile="lena-1.png"
cent=`convert "$infile" -format "%[fx:floor((w-1)/2)]" info:`
inname=`convert "$infile" -format "%t" info:`
suffix=`convert "$infile" -format "%e" info:`
convert "$infile" \
\( +clone -fill black -colorize 100 \
-fill white -draw "translate $cent,$cent circle 0,0 0,$outer" \
-fill black -draw "translate $cent,$cent circle 0,0 0,$inner" \
-alpha off -blur 0x1 +write ring.png \
-write mpr:bpass +delete \) \
-fft \( -clone 0 mpr:bpass -compose multiply -composite \) \
-swap 0 +delete -ift "$infile" -compose plus -composite \
${inname}_bandenhance_${inner}_${outer}.$suffix
这些结果与我在 ImageJ 中的这些设置不同。不幸的是,我不知道他们在做什么。 ImageJ 结果对我来说更像是低通滤波,而不是我所知道的带增强/带通。见https://www.google.com/url?sa=t&rct=j&q=&esrc=s&source=web&cd=12&cad=rja&uact=8&ved=2ahUKEwjJvoWD6L7eAhXJslQKHf1jArgQFjALegQICBAC&url=https%3A%2F%2Fcanvas.instructure.com%2Ffiles%2F6907524%2Fdownload%3Fdownload_frd%3D1&usg=AOvVaw2ws15jPD6C2-yAkfHmHYMH和https://www.scribd.com/doc/51981950/Frequency-Domain-Bandpass-Filtering-for-Image-Processing
在 ImageJ 中,也许他们正在使用巴特沃斯滤波器或更大的高斯模糊。或者他们可能只处理来自 HSI、HSV 或 LAB 的强度通道。