转载:MATLAB命令
2007-05-16 23:32
483 查看
正在处理您的请求...
蜘蛛&&H.264的学习乐园
-------------------------蜘蛛&&H.264的学习乐园
JM模型理解(RSS)
MATLAB学习(RSS)
爱的天堂(RSS)
JM模型理解
爱的天堂
CSDN首页 CSDN社区 CSDN技术中心 BLOG首页 我的首页 个人档案 联系作者 聚合
![](http://blog.csdn.net/images/xml.gif)
![](http://blog.csdn.net/images/feedsky.gif)
搜索 登录
原创 - 6, 翻译 - 0, 转贴 - 2, 点击 - 232, 评论 - 0, Trackbacks -0
作者tag:c/c++ im 矩阵 图象 灰度 matlab学习 CSDN 推荐tag:matlab 图像 数组
[align=center]<<对>的一些理解和疑问,欢迎大家一起讨论! | 帧内预测matlab程序 >>[/align]
![](http://blog.csdn.net/images/zhuan.gif)
MATLAB命令
默认情况下,matlab将图象中的数据存储为double型,即64位浮点数;matlab还支持无符号整型(uint8和uint16);uint型的优势在于节省空间,涉及运算时要转换成double型。
im2double():将图象数组转换成double精度类型
im2uint8():将图象数组转换成unit8类型
im2uint16():将图象数组转换成unit16类型
图像类型转换函数:
dither() 通过颜色抖动,把真彩图像转换成索引图像或灰度图象转换成二值图像
gray2ind() 将灰度图像(或二值图像)转换成索引图像
grayslice() 通过设定的阈值将灰度图象转换成索引图像
im2bw() 通过设定亮度阈值将灰度、真彩、索引图象转换成二值图像
ind2gray() 将索引图象转换成灰度图象
ind2rgb() 将索引图象转换成真彩色图像
mat2gray() 将一个数据矩阵转换成一幅灰度图象
rgb2gray() 将真彩转换成灰度图象
rgb2ind() 将真彩转换成索引图象
图像类型与类型间的转换
1。索引图像:包括一个数据矩阵X和一个色图阵MAP。矩阵元素值指向MAP中的特定颜色向量。
2。灰度图像:数据矩阵I,I中的数据代表了颜色灰度值。矩阵中的元素可以是double类型、8位或16位无符号的整数类型。
3。RGB图像:即真彩图像。矩阵中每个元素为一个数组,数组的元素定义了像素的红、绿、蓝颜色值。RGB数组可以是double类型、8位或16位无符号的整数类型。
4。二值图像:一个数据阵列,每个象素只能取0或1。
矩阵的基本运算
行列式求值:det(A)
矩阵加减:+、-
矩阵相乘:*
矩阵左除:A/B %相当于inv(A)*B
矩阵右除:A/B %相当于A*inv(B)
矩阵的幂:^
矩阵转置:'
矩阵求共轭(实部相同,虚部相反):conj(X)
矩阵求逆:inv(X)
级数的求和与收敛
symsum(fun,var,a,b):其中fun是通项表达式,var为求和变量,a为求和起点,b为求和终点
例如:I为1/[n*(2n+1)]从1到正无穷的和,求I
syms n;
f1=1/(n*(2*n+1));
I=symsum(f1,n,1,inf)
计算结果为:
I =2-2*log(2)
空间曲面
mesh()函数语法:
mesh(Z):
mesh(X,Y,Z,C):其中C是用来定义相应点颜色等属性的数组
例:求x^2+y^2=z的空间曲面
x=-4:4;
y=x;
[X,Y]=meshgrid(x,y);%生成x,y坐标
Z=X.^2+Y.^2;
mesh(X,Y,Z)
曲面图
[x,y]=meshgrid(xa,ya) 当xa,ya分别为m维和n维行向量,得到x和y均为n行m列矩阵。meshgrid常用于生成x-y平面上的网格数据;
mesh(x,y,z)绘制网面图,是最基本的曲面图形命令,其中x、y、z是同阶矩阵,表示曲面三维数据;
mesh(xa,ya,z) xa,ya分别为m维和n维向量,z为n行m列矩阵。等价于先[x,y]=meshgrid(xa,ya)再mesh(x,y,z);
surf(x,y,z)绘制曲面图,与mesh用法类似;
contour(x,y,z)绘制等高线图,与mesh用法类似,可指定z的范围;
contour3(x,y,z)绘制三维等高线图,与mesh用法类似,可指定z的范围。
空间曲线
例:求方程组的空间曲线
1。化为参数方程组
x=t
y=sqrt[t(1-t)]
z=sqrt[1-x^2-y^2]
2。 程序
t=0:0.001:1;
x=t;
y=sqrt(t.*(1-t));
z=sqrt(1-x.^2-y.^2);
plot3(x,y,z,z,-y,z)
其中.*为数组相乘,.^为数组乘方
matlab实现离散余弦变换压缩(JPEG压缩原理)
比部分上篇文章已经介绍过,为了保持文章的完整性,继续保留。
JPEG图像压缩算法:
输入图像被分成8*8或16*16的小块,然后对每一小块进行二维DCT(离散余弦变换)变换,变换后的系数量化、编码并传输;
JPEG文件解码量化了的DCT系数,对每一块计算二维逆DCT变换,最后把结果块拼接成一个完整的图像。在DCT变换后舍弃那些不严重影响图像重构的接近0的系数。
DCT变换的特点是变换后图像大部分能量集中在左上角,因为左上放映原图像低频部分数据,右下反映原图像高频部分数据。而图像的能量通常集中在低频部分。
实例程序:
function Jpeg
I=imread('D:/MATLAB7/toolbox/images/imdemos/cameraman.tif');
%该图片在安装matlab的目录中找,原图为灰度图象
I=im2double(I);%图像存储类型转换
T=dctmtx(8);%离散余弦变换矩阵
B=blkproc(I,[8 8],'P1*x*P2',T,T');
%对原图像进行DCT变换
mask=[1 1 1 1 0 0 0 0
1 1 1 0 0 0 0 0
1 1 0 0 0 0 0 0
1 0 0 0 0 0 0 0
0 0 0 0 0 0 0 0
0 0 0 0 0 0 0 0
0 0 0 0 0 0 0 0
0 0 0 0 0 0 0 0];
B2=blkproc(B,[8 8],'P1.*x',mask);
%数据压缩,丢弃右下角高频数据
I2=blkproc(B2,[8 8],'P1*x*P2',T',T);
%进行DCT反变换,得到压缩后的图像
imshow(I)
title('原始图像')
figure;
imshow(I2)
title('压缩后的图像')
应用到的函数:
I=imread('图像文件名') :读取图像数据,保存在矩阵I中;
imshow(I) :显示灰度图像I,其他用法见matlab帮助;
I2=im2double(I1) :把图像数组I1转换成double精度类型;
D=dctmtx(n) :二维离散余弦变换函数,返回n*n离散余弦变换矩阵。
一个n*n的变换矩阵T被定义成:
Tpq=1/sqrt(n)
,当p=0,0<=q<=M-1;
Tpq=sqrt(2/n)*cos[pi*(2q+1)*p/2n]
,当1<=p<=M-1,0<=q<=M-1。
B=blkproc(A,[m n],fun,P1,P2...) :块操作函数。对图像A的每个不同的m*n块应用fun函数,P1,P2等为fun函数参数。在图像边缘用0来扩展;只有当fun的返回矩阵是m*n矩阵时,B和A的大小才相同。
figure:强制生成一个新的个绘图窗口;
非线性方程求解
fsolve(fun,x0,options)
其中fun为待解方程或方程组的文件名;
x0位求解方程的初始向量或矩阵;
option为设置命令参数
建立文件fun.m:
function y=fun(x)
y=[x(1)-0.5*sin(x(1))-0.3*cos(x(2)), ...
x(2) - 0.5*cos(x(1))+0.3*sin(x(2))];
>>clear;x0=[0.1,0.1];fsolve(@fun,x0,optimset('fsolve'))
注:
...为续行符
m文件必须以function为文件头,调用符为@;文件名必须与定义的函数名相同;fsolve()主要求解复杂非线性方程和方程组,求解过程是一个逼近过程。
不定积分与定积分
不定积分:int(fun,var)
例:求∫sinaxsinbxsincxdx
syms a b c x
y=sin(a*x)*sin(b*x)*sin(c*x);
int(y,x);
pretty(ans)
定积分:int(fun,var,a,b)
其中a,b分别为上下限
求解线形方程
solve,linsolve
例:
A=[5 0 4 2;1 -1 2 1;4 1 2 0;1 1 1 1];
%矩阵的行之间用分号隔开,元素之间用逗号或空格
B=[3;1;1;0]
X=zeros(4,1);%建立一个4元列向量
X=linsolve(A,B)
diff(fun,var,n):对表达式fun中的变量var求n阶导数。
例如:F=sym('u(x,y)*v(x,y)'); %sym()用来定义一个符号表达式
diff(F); %matlab区分大小写
pretty(ans) %pretty():用习惯书写方式显示变量;ans是答案表达式
求极限
limit:
例:limit(F,x,a,left);对表达式F求极限,变量为x,从左边趋近a。
inf:正无穷;
-inf:负无穷。
matlab之基本绘图函数
clear:清空内存中的变量;
figure:强制生成一个新的个绘图窗口;
syms x y t :声明变量;
fplot(函数表达式,绘图区间);
plot(横坐标向量,纵坐标向量,颜色/线形等参数)
ezplot(函数表达式):简单的fplot,easy fplot
axis([xmin xmax ymin ymax ...]):设置坐标轴显示范围
Trackback: http://tb.blog.csdn.net/TrackBack.aspx?PostId=1606312
[收藏到我的网摘] zhizhu666 蜘蛛777发表于 2007年05月12日 21:38:35
相关文章:
三维世界当中的变换矩阵 2005-01-31 happy__888
转帖](译)MATLAB代码矢量化指南-1 2004-07-05 yuanqingfei
图像镶嵌 2006-06-24 keldy
VC数字图像处理编程讲座之十一 2006-04-05 byxdaz
骨骼动画2 2004-11-30 zpxocivuby
特别推荐:
探索新兴务技术领域对IT专业人员的影响
本文将探索对一个新的 IT 领域的需要 IT专业人员如何能够将自己转变为业务技术人员
北邮软件学院2007(京/沪)6月热考
全国规模最大的通信软件工程硕士培养基地 ☆自主命题 ☆多项奖金 ☆优势课程 ☆100%就业
炎黄盈动AWS业务流程管理开发平台
提供最优秀的BPM业务流程管理开发平台及应用解决方 案和开放流程模型库。做领先的BPM民族软件厂商!
Solaris10的详情介绍
免费下载体验Solaris 10操作系统 毫无疑问,Solaris是业界最为优秀的操作系统
如何开发智能客户端应用
离线应用模块的合理利用
![](http://counter.csdn.net/pv.aspx?id=24)
[align=center]<<对>的一些理解和疑问,欢迎大家一起讨论! | 帧内预测matlab程序 >>[/align]
没有评论。
![](http://counter.csdn.net/pv.aspx?id=148)
添加新评论
Copyright ©2007 zhizhu666 蜘蛛777 模板提供:沪江博客
蜘蛛&&H.264的学习乐园
-------------------------蜘蛛&&H.264的学习乐园
| ||||||
日 | 一 | 二 | 三 | 四 | 五 | 六 |
---|---|---|---|---|---|---|
29 | 30 | 1 | 2 | 3 | 4 | 5 |
6 | 7 | 8 | 9 | 10 | 11 | 12 |
13 | 14 | 15 | 16 | 17 | 18 | 19 |
20 | 21 | 22 | 23 | 24 | 25 | 26 |
27 | 28 | 29 | 30 | 31 | 1 | 2 |
3 | 4 | 5 | 6 | 7 | 8 | 9 |
文章
H.264学习(RSS)JM模型理解(RSS)
MATLAB学习(RSS)
爱的天堂(RSS)
收藏
H.264学习JM模型理解
爱的天堂
相册
蜘蛛的相册H.264视频编解码技术
视频乐园JM模型学习
我的生活
存档
2007年05月(8)CSDN首页 CSDN社区 CSDN技术中心 BLOG首页 我的首页 个人档案 联系作者 聚合
![](http://blog.csdn.net/images/xml.gif)
![](http://blog.csdn.net/images/feedsky.gif)
搜索 登录
原创 - 6, 翻译 - 0, 转贴 - 2, 点击 - 232, 评论 - 0, Trackbacks -0
作者tag:c/c++ im 矩阵 图象 灰度 matlab学习 CSDN 推荐tag:matlab 图像 数组
[align=center]<<对>的一些理解和疑问,欢迎大家一起讨论! | 帧内预测matlab程序 >>[/align]
![](http://blog.csdn.net/images/zhuan.gif)
MATLAB命令
默认情况下,matlab将图象中的数据存储为double型,即64位浮点数;matlab还支持无符号整型(uint8和uint16);uint型的优势在于节省空间,涉及运算时要转换成double型。
im2double():将图象数组转换成double精度类型
im2uint8():将图象数组转换成unit8类型
im2uint16():将图象数组转换成unit16类型
图像类型转换函数:
dither() 通过颜色抖动,把真彩图像转换成索引图像或灰度图象转换成二值图像
gray2ind() 将灰度图像(或二值图像)转换成索引图像
grayslice() 通过设定的阈值将灰度图象转换成索引图像
im2bw() 通过设定亮度阈值将灰度、真彩、索引图象转换成二值图像
ind2gray() 将索引图象转换成灰度图象
ind2rgb() 将索引图象转换成真彩色图像
mat2gray() 将一个数据矩阵转换成一幅灰度图象
rgb2gray() 将真彩转换成灰度图象
rgb2ind() 将真彩转换成索引图象
图像类型与类型间的转换
1。索引图像:包括一个数据矩阵X和一个色图阵MAP。矩阵元素值指向MAP中的特定颜色向量。
2。灰度图像:数据矩阵I,I中的数据代表了颜色灰度值。矩阵中的元素可以是double类型、8位或16位无符号的整数类型。
3。RGB图像:即真彩图像。矩阵中每个元素为一个数组,数组的元素定义了像素的红、绿、蓝颜色值。RGB数组可以是double类型、8位或16位无符号的整数类型。
4。二值图像:一个数据阵列,每个象素只能取0或1。
矩阵的基本运算
行列式求值:det(A)
矩阵加减:+、-
矩阵相乘:*
矩阵左除:A/B %相当于inv(A)*B
矩阵右除:A/B %相当于A*inv(B)
矩阵的幂:^
矩阵转置:'
矩阵求共轭(实部相同,虚部相反):conj(X)
矩阵求逆:inv(X)
级数的求和与收敛
symsum(fun,var,a,b):其中fun是通项表达式,var为求和变量,a为求和起点,b为求和终点
例如:I为1/[n*(2n+1)]从1到正无穷的和,求I
syms n;
f1=1/(n*(2*n+1));
I=symsum(f1,n,1,inf)
计算结果为:
I =2-2*log(2)
空间曲面
mesh()函数语法:
mesh(Z):
mesh(X,Y,Z,C):其中C是用来定义相应点颜色等属性的数组
例:求x^2+y^2=z的空间曲面
x=-4:4;
y=x;
[X,Y]=meshgrid(x,y);%生成x,y坐标
Z=X.^2+Y.^2;
mesh(X,Y,Z)
曲面图
[x,y]=meshgrid(xa,ya) 当xa,ya分别为m维和n维行向量,得到x和y均为n行m列矩阵。meshgrid常用于生成x-y平面上的网格数据;
mesh(x,y,z)绘制网面图,是最基本的曲面图形命令,其中x、y、z是同阶矩阵,表示曲面三维数据;
mesh(xa,ya,z) xa,ya分别为m维和n维向量,z为n行m列矩阵。等价于先[x,y]=meshgrid(xa,ya)再mesh(x,y,z);
surf(x,y,z)绘制曲面图,与mesh用法类似;
contour(x,y,z)绘制等高线图,与mesh用法类似,可指定z的范围;
contour3(x,y,z)绘制三维等高线图,与mesh用法类似,可指定z的范围。
空间曲线
例:求方程组的空间曲线
1。化为参数方程组
x=t
y=sqrt[t(1-t)]
z=sqrt[1-x^2-y^2]
2。 程序
t=0:0.001:1;
x=t;
y=sqrt(t.*(1-t));
z=sqrt(1-x.^2-y.^2);
plot3(x,y,z,z,-y,z)
其中.*为数组相乘,.^为数组乘方
matlab实现离散余弦变换压缩(JPEG压缩原理)
比部分上篇文章已经介绍过,为了保持文章的完整性,继续保留。
JPEG图像压缩算法:
输入图像被分成8*8或16*16的小块,然后对每一小块进行二维DCT(离散余弦变换)变换,变换后的系数量化、编码并传输;
JPEG文件解码量化了的DCT系数,对每一块计算二维逆DCT变换,最后把结果块拼接成一个完整的图像。在DCT变换后舍弃那些不严重影响图像重构的接近0的系数。
DCT变换的特点是变换后图像大部分能量集中在左上角,因为左上放映原图像低频部分数据,右下反映原图像高频部分数据。而图像的能量通常集中在低频部分。
实例程序:
function Jpeg
I=imread('D:/MATLAB7/toolbox/images/imdemos/cameraman.tif');
%该图片在安装matlab的目录中找,原图为灰度图象
I=im2double(I);%图像存储类型转换
T=dctmtx(8);%离散余弦变换矩阵
B=blkproc(I,[8 8],'P1*x*P2',T,T');
%对原图像进行DCT变换
mask=[1 1 1 1 0 0 0 0
1 1 1 0 0 0 0 0
1 1 0 0 0 0 0 0
1 0 0 0 0 0 0 0
0 0 0 0 0 0 0 0
0 0 0 0 0 0 0 0
0 0 0 0 0 0 0 0
0 0 0 0 0 0 0 0];
B2=blkproc(B,[8 8],'P1.*x',mask);
%数据压缩,丢弃右下角高频数据
I2=blkproc(B2,[8 8],'P1*x*P2',T',T);
%进行DCT反变换,得到压缩后的图像
imshow(I)
title('原始图像')
figure;
imshow(I2)
title('压缩后的图像')
应用到的函数:
I=imread('图像文件名') :读取图像数据,保存在矩阵I中;
imshow(I) :显示灰度图像I,其他用法见matlab帮助;
I2=im2double(I1) :把图像数组I1转换成double精度类型;
D=dctmtx(n) :二维离散余弦变换函数,返回n*n离散余弦变换矩阵。
一个n*n的变换矩阵T被定义成:
Tpq=1/sqrt(n)
,当p=0,0<=q<=M-1;
Tpq=sqrt(2/n)*cos[pi*(2q+1)*p/2n]
,当1<=p<=M-1,0<=q<=M-1。
B=blkproc(A,[m n],fun,P1,P2...) :块操作函数。对图像A的每个不同的m*n块应用fun函数,P1,P2等为fun函数参数。在图像边缘用0来扩展;只有当fun的返回矩阵是m*n矩阵时,B和A的大小才相同。
figure:强制生成一个新的个绘图窗口;
非线性方程求解
fsolve(fun,x0,options)
其中fun为待解方程或方程组的文件名;
x0位求解方程的初始向量或矩阵;
option为设置命令参数
建立文件fun.m:
function y=fun(x)
y=[x(1)-0.5*sin(x(1))-0.3*cos(x(2)), ...
x(2) - 0.5*cos(x(1))+0.3*sin(x(2))];
>>clear;x0=[0.1,0.1];fsolve(@fun,x0,optimset('fsolve'))
注:
...为续行符
m文件必须以function为文件头,调用符为@;文件名必须与定义的函数名相同;fsolve()主要求解复杂非线性方程和方程组,求解过程是一个逼近过程。
不定积分与定积分
不定积分:int(fun,var)
例:求∫sinaxsinbxsincxdx
syms a b c x
y=sin(a*x)*sin(b*x)*sin(c*x);
int(y,x);
pretty(ans)
定积分:int(fun,var,a,b)
其中a,b分别为上下限
求解线形方程
solve,linsolve
例:
A=[5 0 4 2;1 -1 2 1;4 1 2 0;1 1 1 1];
%矩阵的行之间用分号隔开,元素之间用逗号或空格
B=[3;1;1;0]
X=zeros(4,1);%建立一个4元列向量
X=linsolve(A,B)
diff(fun,var,n):对表达式fun中的变量var求n阶导数。
例如:F=sym('u(x,y)*v(x,y)'); %sym()用来定义一个符号表达式
diff(F); %matlab区分大小写
pretty(ans) %pretty():用习惯书写方式显示变量;ans是答案表达式
求极限
limit:
例:limit(F,x,a,left);对表达式F求极限,变量为x,从左边趋近a。
inf:正无穷;
-inf:负无穷。
matlab之基本绘图函数
clear:清空内存中的变量;
figure:强制生成一个新的个绘图窗口;
syms x y t :声明变量;
fplot(函数表达式,绘图区间);
plot(横坐标向量,纵坐标向量,颜色/线形等参数)
ezplot(函数表达式):简单的fplot,easy fplot
axis([xmin xmax ymin ymax ...]):设置坐标轴显示范围
Trackback: http://tb.blog.csdn.net/TrackBack.aspx?PostId=1606312
[收藏到我的网摘] zhizhu666 蜘蛛777发表于 2007年05月12日 21:38:35
相关文章:
三维世界当中的变换矩阵 2005-01-31 happy__888
转帖](译)MATLAB代码矢量化指南-1 2004-07-05 yuanqingfei
图像镶嵌 2006-06-24 keldy
VC数字图像处理编程讲座之十一 2006-04-05 byxdaz
骨骼动画2 2004-11-30 zpxocivuby
特别推荐:
探索新兴务技术领域对IT专业人员的影响
本文将探索对一个新的 IT 领域的需要 IT专业人员如何能够将自己转变为业务技术人员
北邮软件学院2007(京/沪)6月热考
全国规模最大的通信软件工程硕士培养基地 ☆自主命题 ☆多项奖金 ☆优势课程 ☆100%就业
炎黄盈动AWS业务流程管理开发平台
提供最优秀的BPM业务流程管理开发平台及应用解决方 案和开放流程模型库。做领先的BPM民族软件厂商!
Solaris10的详情介绍
免费下载体验Solaris 10操作系统 毫无疑问,Solaris是业界最为优秀的操作系统
如何开发智能客户端应用
离线应用模块的合理利用
[align=center]<<对>的一些理解和疑问,欢迎大家一起讨论! | 帧内预测matlab程序 >>[/align]
没有评论。
添加新评论
大名 | Please enter your name | |
网址 | ||
评论 Please enter a comment | ||
相关文章推荐
- 转载: 如何在MATLAB 的MCC 命令 生成C/C++ 程序
- 【转载】Matlab画图命令介绍
- MATLAB 人机交互(窗口)设置命令 (转载)
- [转载]Matlab中使用Plot函数动态画图方法总结
- [转载]linux 常见命令
- 转载 Android 通过adb shell命令查看内存,CPU,启动时间,电量等信息
- matlab命令
- Linux tail 命令 【转载】
- (转载)Oracle10g 数据泵导出命令 expdp 使用总结(二)
- 【转载】你不造的Diskpart磁盘管理命令
- 【转载】在Matlab中使用IronPython(一)——初步试验
- matlab 常用命令
- Git版本恢复命令reset(转载)
- 解决直接打开.m的问题,只需要在matlab下复制此命令
- ODbgScript的脚本命令[转载]
- [初学笔记] matlab中优化测试 profiler的工具使用, profile相关的命令
- [转载]如何将cmd中命令输出保存
- 转载_比较全面的gdb调试命令
- TeX系列: matlab2tikz--matlab图形数据转化为tikz命令
- linux常用svn命令 (转载)