【问题标题】:What's the best filter for downsampling text?下采样文本的最佳过滤器是什么?
【发布时间】:2012-10-25 13:50:21
【问题描述】:
我正在使用 ImageMagick 对文本进行下采样。我意识到对于每种情况都没有 best 过滤器这样的东西,但我认为在专门对文本进行下采样时必须有一个普遍接受的标准(我可能错了)。以下是 ImageMagick 中可用的过滤器列表:
- 巴特利特
- 布莱克曼
- 博曼
- 盒子
- 卡特罗姆
- 立方
- 高斯
- 汉明
- 汉宁
- 隐士
- 金克
- 凯撒
- 拉格朗日
- 兰佐斯
- LanczosSharp
- Lanczos2
- Lanczos2Sharp
- 米切尔
- Parzen
- 点
- 二次方
- 罗比杜
- 正弦
- SincFast
- 三角形
- 威尔士语
【问题讨论】:
标签:
image
text
imagemagick
resampling
downsampling
【解决方案1】:
您的备忘单没有使用推荐的某些过滤器:其中一些设计用于“-distort Resize”而不是“-resize”(see here)。
另外的建议:色彩空间的选择确实可以改善(或恶化)结果。 ImageMagick 论坛发布“使用 sRGB、RGB、LAB、LUV、XYZ、sigmoidal 放大...?” (我不能在这里链接,因为作为一个新用户,每个答案我只能放两个链接)说明了这一点。对于文本,我推荐具有高对比度值(11 以上)的“sigmoidization”。 See here.
【解决方案2】:
没有普遍接受的下采样滤波器;仅仅是因为,没有普遍接受的文本字体。您需要确定您使用的字体,并为所述任务应用最匹配的过滤器。
- 处理 2005 年的电子邮件? Tahoma 字体 => Hermite 过滤器
- 扫描的传真?混合高对比度 => 点过滤器
可以在here和here找到每个过滤器强弱的视觉比较。
我想通过生成可视化备忘单来提醒自己哪个过滤器可以满足任务。
这是一个预览“DejaVu Sans Condensed”的快速 bash 脚本
#!/bin/bash
# Adjust this to type-face you'd like to preview
FONT_TO_PREVIEW="DejaVu-Sans-Condensed-Bold"
# Create a temp directory to work with
mkdir filter_tmp
cd filter_tmp
while read filter
do
# Generate base file
convert \
-gravity center -font $FONT_TO_PREVIEW -background white -size 126x \
-fill black -pointsize 12 label:$filter $filter.org.png
# Resample
convert $filter.org.png -filter $filter -resize 400% $filter.filter.png
# Crop center
mogrify -gravity center -crop 126x+0+0 +repage $filter.filter.png
# Tile filtered image below original
montage $filter.org.png $filter.filter.png -tile 1x2 -geometry +1+1 +label +set label $filter.png
# Clean house
rm $filter.filter.png $filter.org.png
# Generate list of all installed filters
done < <(identify -list filter)
montage -geometry +4+4 -tile 4x *.png ../filter_preview.png
# Clean house & display generated filter preview
cd ..
rm -rf filter_tmp
display -display :0 filter_preview.png