在看三维图像相关的代码时,理解的不太透彻,有时间了就看了几本书,巩固一下。
meshgrid()很常见的一个函数,见下图
第一句话很关键啊,其实就是产生坐标,因为二维图像的时候,用的是向量来表示坐标点,那么三维图像的时候,坐标点就应该用矩阵来表示,这是很自然的一件事情,但是落实到编程实现的时候,却不太直观,
如下是我们想象中的坐标和函数值
begin{bmatrix} (x_1,y_1)&(x_1,y_2)&(x_1,y_3)/ (x_2,y_1)&(x_2,y_2)&(x_2,y_3)/ (x_3,y_1)&(x_3,y_2)&(x_3,y_3)/ end{bmatrix} and begin{bmatrix} z_{11}&z_{12}&z_{13}/ z_{21}&z_{22}&z_{23}/ z_{31}&z_{32}&z_{33}/ end{bmatrix}
但计算机处理的时候,不是这样的。他会把 (x,y) 的坐标分开来存
X= begin{bmatrix} x_{1}&x_{2}&x_{3}/ x_{1}&x_{2}&x_{3}/ x_{1}&x_{2}&x_{3}/ end{bmatrix} quad andquad Y= begin{bmatrix} y_{1}&y_{1}&y_{1}/ y_{2}&y_{2}&y_{2}/ y_{3}&y_{3}&y_{3}/ end{bmatrix}
可以想象到的是, X,Y 是坐标点的缘故,X的每一列肯定是同一个值,Y的每一行也是同一个值。那么为什么X的每一列是同一个值,根据直觉来讲应该是
X= begin{bmatrix} x_{1}&x_{1}&x_{1}/ x_{2}&x_{2}&x_{2}/ x_{3}&x_{3}&x_{3}/ end{bmatrix} quad andquad Y= begin{bmatrix} y_{1}&y_{3}&y_{3}/ y_{1}&y_{3}&y_{3}/ y_{1}&y_{3}&y_{3}/ end{bmatrix}
由于上述两种表达形式差了逆时针90度的转置,个人猜测是因为二维坐标系与三维坐标系的表示不一样,meshgrid()混用了两种坐标系的表示方法。
%%
clc
clear all
close all
x = -2:0.5:2;
y = -2:0.5:2;
[X,Y] = meshgrid(x,y);
plot(X,Y,'o');
% plot(X,Y);
<< · Back Index ·>>
作者:李曉霞 陳一昕要點導讀:FCPA為何對中國公民何志平有管轄權?FBI究竟采取瞭哪些調查手段以獲取證據?地緣政治背景下,...
在餐饮业多年的各位老板 相信对“幽灵厨房”这个词并不陌生 今年万圣节降至,#GhostKitchen 这个词莫名居然在ins大火了一把, ...