现在时间是:
当前位置:首 页 >> Matlab>> 教学区>> 文章列表

17074172-作业6(陈瑞、林子强、程越、鲁鹏飞)

作者:17074172   发布时间:2019-06-18 17:11:47   浏览次数:39

 

1.问题:设 p1=[a1;b1;c1;d1] p2=[a2;b2;c2;d2] 分别表示两个四元数 p1=a1+b1*i+c1*j+d1*k p2=a2+b2*i+c2*j+d2*k ,编写程序求 p=q1*q2

           1)设 p=a+b*i+c*j+d*k 则可用 p=[a; b; c; d] 表示.

           2)令

          A=[a1 -b1 -c1 -d1

            b1 a1 -d1 c1

            c1 d1 a1 -b1

            d1 -c1 b1 a1],

          p=A*p2.

   

   代码:

%建立四元数乘积运算的函数

function q=sys3(q1,q2)

syms i1 i2 i3;

syms a0 b0 c0 d0 q1 q2;

q1=input('q1=');

q2=input('q2=');

a0=q1(1)*q2(1)-q1(2)*q2(2)-q1(3)*q2(3)-q1(4)*q2(4);

b0=q1(1)*q2(2)+q1(2)*q2(1)+q1(3)*q2(4)-q1(4)*q2(3);

c0=q1(1)*q2(3)+q1(3)*q2(1)+q1(4)*q2(2)-q1(2)*q2(4);

d0=q1(1)*q2(4)+q1(4)*q2(1)+q1(2)*q2(3)-q1(3)*q2(2);

q=a0+b0*i1+c0*i2+d0*i3;

 

   实验结果:

   >> sys3

q1=[2 3 4 5]

q2=[2 3 4 5]

 

ans =

 

12*i1 + 16*i2 + 20*i3 – 46

 

 

2.问题:设 q1= 2+1*i+3*j+4*k q2=0+1*i+1*j-1*k,利用习题1中编写的程序计算 p=p1*p2, 并且利用 Bj Bi Bk 画图解释四元数乘积与旋转之间的关系。

分析:图像旋转的本质是进行向量的线性变换,因此,只要讲图片的各个像素点通过四元数存储进行相应的旋转,再对旋转后的图片相对应的像素点进行匹配,进行相应的四元数赋值即可。

代码:

 % 读入图片
im = imread('C:Users林子强Desktopmatlab讲tets.jpg');
% 求出旋转矩阵
a = 30 / 180 * pi;
R = [cos(a), -sin(a); sin(a), cos(a)];
R = R'; % 求出旋转矩阵的逆矩阵进行逆向查找
% 计算原图大小
sz = size(im);
h = sz(1);
w = sz(2);
ch = sz(3);
c1 = [h; w] / 2;
% 计算显示完整图像需要的画布大小
hh = floor(w*sin(a)+h*cos(a))+1;
ww = floor(w*cos(a)+h*sin(a))+1;
c2 = [hh; ww] / 2;
% 初始化目标画布
im2 = uint8(ones(hh, ww, 3)*128);
for k = 1:ch
for i = 1:hh
for j = 1:ww
p = [i; j];
pp = (R*(p-c2)+c1);
mn = floor(pp);
ab = pp - mn;
a = ab(1);
b = ab(2);
m = mn(1);
n = mn(2);
% 线性插值方法
if (pp(1) >= 2 && pp(1) <= h-1 && pp(2) >= 2 && pp(2) <= w-1)
im2(i, j, k) = (1-a)*(1-b)*im(m, n, k) + a*(1-b)*im(m+1, n, k)...
+ (1-a)*b*im(m, n, k) + a*b*im(m, n, k);
end
end
end
end
% 显示图像
figure;
imshow(im2);

 

 

结果:

原图

 

                               旋转后的图片

 

相关说明:对原图和已旋转出的图片的每个像素点已四元数向量的形式存储,进行相应旋转处理后,再将对应像素点进行匹配,然后赋值处理,即可完成通过四元数进行图片旋转。

 

 

 







上一篇:没有了    下一篇:没有了

Copyright ©2020    计算数学达人 All Right Reserved.

技术支持:自助建站 | 领地网站建设 |短信接口 |燕窝 版权所有 © 2005-2020 lingw.net.粤ICP备16125321号 -5