2014-11-06 3 views
-1

Я только что применил преобразование размера arnold над изображением размеров NXM как часть моего проекта. Теперь основная проблема заключается в том, как выполнить обратное преобразование арнольда над изображением размера N * M?Выполнение инверсного преобразования arnold на изображении MATLAB

+0

[This] (http://www.mathworks.com/matlabcentral/fileexchange/35144-inverse-and-direct-arnold-transform) должен помочь. –

+0

@Parag S. Chandakkar: Я думаю, вы не внимательно прочитали вопрос. – typedef

+0

Вы можете выполнить прямое и обратное преобразование Арнольда с предоставленной мной связью. Вы хотите сделать обратное преобразование Арнольда. Какую часть вопроса я неправильно понял, вы думаете? –

ответ

1

Это скорее вопрос с поисковой системой, чем вопрос программирования, но вот представление из найденного обмена файлами here., позволяющее вам вычислить прямое и обратное преобразование Арнольда. Посмотрите на часть кода, используемую для генерации iminverse, и вы хорошо пойдете.

У меня нет никакого кредита для этого и не проверял его. Это было написано доктором Прашаном Премаратне.

%Written by Dr. Prashan Premaratne - University of Wollongong - 1 May 2006 
%num specifies the number of Iterations for the Arnold Transform 
function arnold(im,num) 
[rown,coln]=size(im); 
figure(1) 
for inc=1:num 
for row=1:rown 
    for col=1:coln 

     nrowp = row; 
     ncolp=col; 
     for ite=1:inc 
      newcord =[1 1;1 2]*[nrowp ncolp]'; 
      nrowp=newcord(1); 
      ncolp=newcord(2); 
     end 
     newim(row,col)=im((mod(nrowp,rown)+1),(mod(ncolp,coln)+1)); 

    end 
end 

end 
imshow(newim) 
figure(2) 
[irown,icoln]=size(newim); 
for inc=1:num 
for irow=1:irown 
    for icol=1:icoln 

     inrowp = irow; 
     incolp=icol; 
     for ite=1:inc 
      inewcord =[2 -1;-1 1]*[inrowp incolp]'; 
      inrowp=inewcord(1); 
      incolp=inewcord(2); 
     end 
     iminverse(irow,icol)=newim((mod(inrowp,irown)+1),(mod(incolp,icoln)+1)); 

    end 
end 
imshow(iminverse) 
end 
%out=iminverse; 

Обратите внимание, что он принимает в оттенках серого/бинарных изображений, так как [rown,coln] = size(im) даст нежелательный результат для RGB изображения.

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