我刚刚将尺寸为NXM的图像应用了arnold尺寸变换作为我项目的一部分。现在,主要问题是如何对尺寸为N * M的图像执行逆arnold变换?
答案 0 :(得分:1)
这更像是一个谷歌搜索问题,而不是编程问题,但这里是来自文件交换的提交here.,允许您计算直接和反Arnold变换。看一下用于生成iminverse
的代码片段,你就可以了。
我没有任何信用,也没有测试过。它由Prashan Premaratne博士撰写。
%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图像提供不需要的结果。