LINUX.ORG.RU

Upsampling (увеличение) изображений в imagemagick

 ,


1

2

Upsampling (увеличение) изображений - это задача увеличения размеров изображения с подавлением эффектов интерполяции (размытия) с помощью выделения особенностей в исходном изображении. Такой задачей занимаются специальные программы. В пиксельарте - scalex, sai, eagle,hqx, xbrz. Для изображений не относящихся к пиксельарту также существуют спецпрограммы, например Image Interpolation with Geometric Contour Stencils. Данные программы используют inprocess(«в процессе»)-обработку изображения. В imagemagick также возможен upsampling. Надо только учитывать следующее: postprocess(«после процесса»)-обработка неэффективна, так как использует уже увеличенное изображение, содержащее интерполяционные искажения. Поэтому надо использовать preprocess(«перед процессом»)-обработку.

Мой рецепт upsampling-а:

cat imhris2x2p.sh 
#!/bin/bash

if [ -z "$1" ]
then
    echo "Usage $0 <image>"
    exit 1
else
    src="$1"
fi

ext=${src:(-3)}
tname="${src%.$ext}"
tima="$tname.hris2x2p.a.png"
timg="$tname.hris2x2p.c.png"

TSTART=$(date +%s)

identify "$src"

if [ -f "$timg" ]
then
    identify "$timg"
else
    convert -verbose -resize 160% -sample 50% -resize 125% "$src" "$tima"
    convert "$src" "$tima" -fx '(u[0]-u[1])+u[0]' -resize 200% "$timg"
    rm -f "$tima"
fi

TEND=$(date +%s)
TDIFF=$(( $TEND - $TSTART ))
echo "It took $TDIFF seconds"
Deleted

Ответ на: комментарий от anonymous

Fred's ImageMagick Scripts

Сенькс, ссылку Fred's ImageMagick Scripts хотел сам вставить где-нибудь, но забыл. Упущение с моей стороны. Кое-какие рецепты из этого списка использовал, но их не так много, как может показаться на первый взгляд. Они не охватывают всех возможностей imagemagick и не со всеми из них я согласен. Поэтому и пишу собственные рецепты.

Deleted
()
Вы не можете добавлять комментарии в эту тему. Тема перемещена в архив.