光之剑客 发表于 2008-12-30 23:12

请求帮忙纠错..

function = im_R(im,rotation) %im是输入图像,rotation是旋转矩阵
close all;
im=imread('panda.jpg');
subplot(1,2,1);
imshow(im);
dim = ndims(im); %确定维数,对灰度和彩色图像分别处理
w = size(im,2);
h = size(im,1);
if( dim == 3 )
    imN = zeros( h, w, 3 );
else
    imN = zeros(h,w);
end
im = double(im);
for r = 1 : h
    for c = 1 : w
      t = rotation * [ r - h / 2; c - w / 2 ] + [ h / 2; w / 2 ];%旋转
      if( t(1) > 1 && t(2) > 1 && t(1) < h && t(2) < w )%双线性插值
            x = floor( t(1) );
            y = floor( t(2) );
            v1 = im( x + 1, y, : ) * ( t(1) - x ) + im( x, y, : ) * ( 1 + x - t(1) );
            v2 = im( x + 1, y + 1, : ) * ( t(1) - x ) + im( x, y + 1, : ) * ( 1 + x - t(1) );
            v = v2 * ( t(2) - y ) + v1 * ( 1 + y - t(2) );
            imN( r, c, : ) = round(v);
      end
    end
end
imN = uint8(imN);
subplot(1,2,2);
imshow(imN);


运行老是提示Strings passed to EVAL cannot contain function declarations.
不知道哪里有问题..

ch_j1985 发表于 2008-12-31 00:06

回复 楼主 光之剑客 的帖子

请LZ上传图像,方便大家调试!

光之剑客 发表于 2008-12-31 08:50

图像是这个。。但是只要命令对图像不是都一样么..

ch_j1985 发表于 2008-12-31 11:47

function = im_R(im,rotation)
把上面的改为下面的
= im_R(rotation)
页: [1]
查看完整版本: 请求帮忙纠错..