首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > 开发语言 > 其他开发语言 >

求简单的matlab代码。解决办法

2012-09-16 
求简单的matlab代码。求一个通过matlab的图像坐标变换代码,公式如下图所示:其中 x,y为原来图像的坐标,x,y’

求简单的matlab代码。
求一个通过matlab的图像坐标变换代码,公式如下图所示:

其中 x,y为原来图像的坐标,x',y’为变换后的图像坐标,参数m已知。
要将得到的变换后的图像保存下来。

[解决办法]
假设你的原参数m是1*8的vector,图像是2d图片

C/C++ code
% 分割分子分母的参数矩阵matx = m(1:3);maty = m(4:6);matd = [m(7:8),1];% 读取原图oldimg = imread('test.jpg');% 新图newimg = [];% 坐标变换for x = 1:size(oriImg,2)    for y = 1:size(oriImg,1)        tempvec = [x,y,1]'; % 临时变量        newx = floor((matx*tempvec)/(matd*tempvec)); % 新x坐标并取整        newy = floor((maty*tempvec)/(matd*tempvec)); % 新y坐标并取整        newx = max(1,newx); % 保证x下标从1开始        newy = max(1,newy); % 保证y下标从1开始        newimg(newy,newx) = oldimg(y,x); % 设置新图像(y',x')的值为原图(y,x)的值,注意顺序    endend% 转换为unsigned int8图像,像素值[0,255]newimg = uint8(newimg);% 保存新图片imsave('newimg.jpg','jpg'); 

热点排行