2011-01-22 4 views
1

Я создал эту тему после my previous post. Я не могу запустить следующий код (написанный @belisarius):Обработка изображений Mathematica

a = Image["path/file.png"] 
b = [email protected][[email protected], {{40, 0}, {40}, {0}}, {1, 1, 1}]; 
f[image_, angleMult_] := ImageForwardTransformation[image, (
    fi = ArcTan[Abs[#[[2]]/(#[[1]] - .5)]]; 
    fi1 = angleMult fi (#[[1]]^2 + #[[2]]^2)/2; 
    {(1/2 - Sin[fi1] #[[2]] - Cos[fi1]/2 + 
     Cos[fi1] #[[1]]), -Sin[fi1]/2 + Sin[fi1] #[[1]] + 
     Cos[fi1] #[[2]]}) &] 
t = Table[f[b, x], {x, 0, .2, .02}]; 
t1 = [email protected]; 
Export["anim.gif", Join[t, t1], "DisplayDurations" -> .15]; 
Import["anim.gif", "Animation"] 

Вот список ошибок:

ArrayPad::depth: Padding amount {{40,0},{40},{0}} should specify padding in no more than the number of dimensions in array {{1.,1.,1.,1.,1.,1.,1.,1.,1.,1.,1.,1.,1.,1.,1.,1.,1.,1.,1.,1.,1.,1.,1.,1.,1.,1.,1.,1.,1.,1.,1.,1.,1.,1.,1.,1.,1.,1.,1.,1.,1.,1.,1.,1.,1.,1.,1.,1.,0.996078,0.984314,<<142>>},<<49>>,<<145>>}. >> 

Image::imgarray: The specified argument ArrayPad[{{1.,1.,1.,1.,1.,1.,1.,1.,1.,1.,1.,1.,1.,1.,1.,1.,1.,1.,1.,1.,1.,1.,1.,1.,1.,1.,1.,1.,1.,1.,1.,1.,1.,1.,1.,1.,1.,1.,1.,1.,1.,1.,1.,1.,1.,1.,1.,1.,0.996078,0.984314,<<142>>},<<49>>,<<145>>},{{40,0},{40},{0}},{1,1,1}] should be an array of rank 2 or 3 with machine-sized numbers. >> 

ImageForwardTransformation::imginv: Expecting an image or graphics instead of Image[ArrayPad[{{1.,1.,1.,1.,1.,1.,1.,1.,1.,1.,1.,1.,1.,1.,1.,1.,1.,1.,1.,1.,1.,1.,1.,1.,1.,1.,1.,1.,1.,1.,1.,1.,1.,1.,1.,1.,1.,1.,1.,1.,1.,1.,1.,1.,1.,1.,1.,1.,0.996078,0.984314,<<142>>},<<49>>,<<145>>},{<<1>>},{1,1,1}]]. >> 

General::stop: Further output of ImageForwardTransformation::imginv will be suppressed during this calculation. >> 

Rasterize::bigraster: Not enough memory available to rasterize ImageForwardTransformation expression. >> 

General::stop: Further output of Rasterize::bigraster will be suppressed during this calculation. >> 

Я использую Mathematica 8 под Linux.

+1

я использую мма на самих окнах, но я сделал поиск google для вставки изображений в Linux на Mma и нашел это. Это может быть что-то, что вы могли бы попробовать http://www.mathkb.com/Uwe/Forum.aspx/mathematica/16019/Paste-image-directly-into-V7-notebook-on-Linux-X11 – dbjohn

+0

Начать отладку, заменив b = ... во второй команде b = a, и давайте посмотрим, является ли это проблемой форматирования изображения. –

ответ

5

Я думаю, что понял.

Код, указанный выше для цветных изображений (3 канала), и кажется, что вы пытаетесь запустить его через изображение B & W (1 канал).

Либо использовать цветное изображение или заменить вторую линию:

b = [email protected][[email protected], {{40, 0}, {40}}, 1]; 

Вот результат для вашего изображения, используя вышеуказанную замену как:

a = Binarize[Image["path/file.png"]] 
b = [email protected][[email protected], {{40, 0}, {40}}, 1]; 

alt text

Смежные вопросы