15-matlab矩阵运用
from scipy.spatial import Delaunay
from mpl_toolkits.mplot3d import Axes3D
import numpy as np
import matplotlib.pyplot as plt
from numpy import *
import operator
from functools import reduce W = np.loadtxt('data.txt')
# print(W)
# print(W.data)
(m,n) = W.shape
matchedPoints1 = W[0:int(m/2),:].copy()
matchedPoints1 = double(matchedPoints1) #转为double
matchedPoints2=W[int(m/2 + 1):m,:].copy()#奇数时会丢失一个
matchedPoints2=double(matchedPoints2)
matchedPoints1 = mat(matchedPoints1)
matchedPoints2 = mat(matchedPoints2) # print(matchedPoints1)
# print(matchedPoints2)
k1=[[3483.7,-3.4942, 614.50],
[0.0000, 3485.2, 488.13],
[0.0000, 0.0000, 1.0000]
]
k1 = mat(k1) I=eye(3)
O=[[0],[0],[0]];
O = mat(O) k2=[[3464.6, -1.1771, 680.15],
[0.0000, 3462.7, 503.73],
[0.0000, 0.0000, 1.0000]
]
k2 = mat(k2)
R=[ [0.9989, 0.0002, -0.0476],
[-0.0008, 0.9999, -0.0120],
[0.0476, 0.0120, 0.9988]
]
R = mat(R) T=[ [279.48],
[-3.7650],
[1.9500]
]
T = mat(T) # test = hstack((I,O))
M1=k1*hstack((I,O))
M2=k2* hstack((R,T))
M1 = mat(M1)
M2 = mat(M2)
cameraMatrix1=double(M1).copy()
cameraMatrix2=double(M2).copy() fl=k1[0,0]
fr=k2[0,0]
Xl=matchedPoints1[:,0].copy()
Yl=matchedPoints1[:,1].copy()
# Xl=mat(Xl)
# Yl=mat(Yl)
Xr=matchedPoints2[:,0].copy()
Yr=matchedPoints2[:,1].copy() Tx=T[0]; #矩阵
Tz=T[2];
R1=R[0,0]
R2=R[0,1]
R3=R[0,2]
R7=R[2,0]
R8=R[2,1]
R9=R[2,2]
z = []
x = []
y = []
for k in range(0,int(m/2)):
zz = fl * (fr * Tx - Xr[k] * Tz)/(Xr[k] *(R7 * Xl[k] + R8 * Yl[k]
+ fl * R9) - fr * (R1 * Xl[k] + R2 * Yl[k] + fl * R3))
z.append(zz[0,0])
xx = z[k] * Xl[k] / fl;
x.append(xx[0,0])
yy = z[k] * Yl[k] / fl;
y.append(yy[0,0])
# print(k)
# z = mat(z)
# x = mat(x)
# y = mat(y)
# x=x.transpose()
# y=y.transpose()
# z=z.transpose()
# x = x[0,:].copy()
# y = y[0,:].copy()
# z = z[0,:].copy()
# x = [1.64546964617096,3.29082591875077,4.93606803026144]
# y = [3.29093929234191,3.29082591875077,3.29071202017429]
# z = [5732.32260636576,5732.12512657603,5731.92673234059]
print(x) #画图
fig = plt.figure()
ax = fig.gca(projection='3d')
ax.plot_trisurf(x, y, z, linewidth=1, antialiased=True)
plt.show()
15-matlab矩阵运用的更多相关文章
- MATLAB矩阵操作大全
转载自:http://blog.csdn.net/dengjianqiang2011/article/details/8753807 MATLAB矩阵操作大全 一.矩阵的表示 在MATLAB中创建矩阵 ...
- [置顶] [MATLAB技术贴]漫谈MATLAB矩阵转置
矩阵转置是matlab最基本的操作了,但这个基本操作,也是很多初学者容易出现问题的地方.本帖通过几个实例演示matlab矩阵转置的操作. 方法一:' 运算符与 .' 运算符 >>a ...
- matlab矩阵内存预分配
matlab矩阵内存预分配就意味着,划定一个固定的内存块,各数据可直接按"行.列指数"存放到对应的元素中.若矩阵中不预配置内存.则随着"行.列指数"的变大.MA ...
- Eigen ,MKL和 matlab 矩阵乘法速度比较
Eigen 矩阵乘法的速度 < MKL矩阵乘法的速度,MKL矩阵乘法的速度与matlab矩阵乘法的速度相差不大,但matlab GPU版本的矩阵乘法速度是CUP的两倍,在采用float数据类型 ...
- Matlab矩阵学习三 矩阵的运算
Matlab矩阵的运算 一.矩阵的加减 在matlab中,矩阵的加减和数的加减符号一样,都是"+"和”-“,不同的是两个进行运算的矩阵维度必须相同 二.数乘 三.乘法 矩阵乘法 ...
- Matlab矩阵学习二 矩阵的修改
Matlab矩阵的修改 一.元素修改 (1).矩阵扩充 (2)矩阵删除某行或某列 删除某行:A(m,:)=[] %删除A矩阵的第m行 删除某列: A(:,n)=[] %删除A矩阵的第n列 ...
- Matlab矩阵学习一 矩阵的创建
Matlab矩阵创建 1.直接输入数值创建 矩阵元素要用[ ] 括起来,";"代表一行结束,以下创建方式也是合法的,矩阵的元素可以是实数,也可以是复数,复数用a+bi表 ...
- matlab矩阵
矩阵的转置用',比如: a = [1,2,3]; b = a'; %b 转置成一个列向量,可以用于矩阵 linspace是Matlab中的一个指令,用于产生指定范围内的指定数量点数,相邻数据跨度相同, ...
- matlab矩阵与数组
数组运算:数与数组加减:k+/-A %k加或减A的每个元素数组乘数组: A.*B %对应元素相乘数组乘方: A.^k %A的每个元素k次方:k.^A,分别以k为底A的各元素为指数求幂值数除以数组: k ...
- Matlab矩阵填充--Matlab interp2
Matlab interp2 为Matlab的矩阵填充函数, 填充关系: x=1:11; y=1:13; x1=1:0.1:12; y1=1:0.1:14; [x2,y2]=meshgrid(x1,y ...
随机推荐
- ajax异步、同步问题,KindEditor ajax提交内容,ajax提交form表单 解决按两次的问题
版权声明:本文为博主原创文章,未经博主允许不得转载. 如果ajax不采用异步,整个js代码在服务器返回结果前都将阻塞,alert方法除外 lookUp('lookUp','',100,300,3); ...
- 【基础知识六】支持向量机SVM
开发库: libsvm, liblinear GitHub地址 SVM难点:核函数选择 一.基本问题 找到约束参数ω和b,支持向量到(分隔)超平面的距离最大:此时的分隔超平面称为“最优超平面 ...
- RESTful API & Swagger入门
什么是RESTful API? 原文地址:https://blog.csdn.net/hjc1984117/article/details/77334616 Swagger入门教程 https://w ...
- RNN循环神经网络结构
note: RNN处理有序的数据.例如一句话 一层双向的循环神经网络示意图(没有 S0' 则为单层循环): 正向循环S0 到 Si:y1的值受X1,A1以及上一层的A0影响 反向循环Si 到 S0:y ...
- UVA-10115
字符查找替换,WA了N次,一次只能替换一个,下一次find必须从第0个位置开始 import java.io.File; import java.io.FileNotFoundException; i ...
- uva579-简单计算题
题意: 求分钟和时钟之间的夹角 解法:俩个夹角互减 AC:10ms #include<iostream> #include<functional> #include<qu ...
- 本地git仓库常用操作
SSH配置: 本机创建SSH key $ ssh-keygen -t rsa -C "youremail@example.com" 将SSHkey添加到git仓库:id_rsa.p ...
- 机器学习入门-贝叶斯统计语料库的词频.groupby() collections
1..groupby()[].agg(by={}) 2. collections.de...(lambda:1) 统计的单词是语料库中所有的词, 对Dataframe统计单词词频,同时增加一列数据co ...
- UI5-文档-4.25-Sorting and Grouping
为了使我们的发票列表更加用户友好,我们将它按字母顺序排序,而不是仅仅显示来自数据模型的顺序.此外,我们还引入了组,并添加了发布产品的公司,以便更容易使用数据. Preview The list is ...
- python帮助信息查看以及笔记
如何获取使用帮助: 获取对象支持使用的属性和方法:dir() dir()不带参数时,返回当前范围内的变量.方法和定义的类型列表:带参数时,返回参数的属性.方法列表.如果参数包含方法__dir__(), ...