索引
2015-11-20 21:50
253 查看
常用基本代码
1、a=imread('C:\Users\Administrator\Desktop\四组小记2\科研室图片\手.jpg');
[M,N]=size(a)%用size函数显示图像的行和列
whos a%显示图像的附加信息
imshow(a);
显示结果为
M =
830
N =
2400
Name Size Bytes Class Attributes
a 830x800x3 1992000 uint8
Warning: Image is too big to fit on screen; displaying at 67%
表示此幅图像的范围过大,只显示了整幅图像的67%
2.imshow是用来显示图片的,如
>> I = imread('moon.tif');
>> figure,imshow(I);
而有时为了数据处理,要把读取的图片信息转化为更高的精度,
>> I = double(imread('moon.tif'));
为了保证精度,经过了运算的图像矩阵I其数据类型会从unit8型变成double型。如果直接运行imshow(I),我们会发现显示的是一个白色的图像。这是因为imshow()显示图像时对double型是认为在0~1范围内,即大于1时都是显示为白色,而imshow显示uint8型时是0~255范围。而经过运算的范围在0-255之间的double型数据就被不正常得显示为白色图像了。Double型好于uint8型。
有两个解决方法:
1> imshow(I/256); -----------将图像矩阵转化到0-1之间
2> imshow(I,[]); -----------自动调整数据的范围以便于显示.
从实验结果看两种方法都解决了问题,但是从显示的图像看,第二种方法显示的图像明暗黑白对比的强烈些!
3.向量索引
v=[1 3 5 7 9]
v =
1 3 5 7 9
>> v(2)
ans =
3
>> w=v.'
w =
1
3
5
7
9
>> v(1:3)
ans =
1 3 5
>> v(2:5)
ans =
3 5 7 9
>> v(2:end)
ans =
3 5 7 9
>> v([1 4 5])
ans =
1 7 9
矩阵索引
A=[1 2 3;4 5 6;7 8 9]
A =
1 2 3
4 5 6
7 8 9
>> A(2,3)
ans =
6
>> C3=A(:,3)
C3 =
3
6
9
>> R2=A(2,:)
R2 =
4 5 6
>> T2=A(1:2,1:3)
T2 =
1 2 3
4 5 6
B=A ;
>> B(:, 3)=0
B =
1 2 0
4 5 0
7 8 0
>> A(end,end)
ans =
9
A(end, end - 2)
ans =
7
>> A(2:end, end:-2:1)(列上索引从最后一个元素开始计数,步长为-2,直到第一个元素时停止)
ans =
6 4
9 7
>> E=A([1 3], [2 3])
E =
2 3
8 9
>> D=logical([1 0 0;0 0 1;0 0 0])
D =
1 0 0
0 0 1
0 0 0
>> A(D)(一种特殊的寻址方式)
ans =
1
6
>> V=T2(:)(单个引号会选择该数组的全部元素(以逐列的方式),并将这些元素排成一个列向量的形式)
V =
1
4
2
5
3
6
>> s=sum(A(:))(求和)
s =
45
1、a=imread('C:\Users\Administrator\Desktop\四组小记2\科研室图片\手.jpg');
[M,N]=size(a)%用size函数显示图像的行和列
whos a%显示图像的附加信息
imshow(a);
显示结果为
M =
830
N =
2400
Name Size Bytes Class Attributes
a 830x800x3 1992000 uint8
Warning: Image is too big to fit on screen; displaying at 67%
表示此幅图像的范围过大,只显示了整幅图像的67%
2.imshow是用来显示图片的,如
>> I = imread('moon.tif');
>> figure,imshow(I);
而有时为了数据处理,要把读取的图片信息转化为更高的精度,
>> I = double(imread('moon.tif'));
为了保证精度,经过了运算的图像矩阵I其数据类型会从unit8型变成double型。如果直接运行imshow(I),我们会发现显示的是一个白色的图像。这是因为imshow()显示图像时对double型是认为在0~1范围内,即大于1时都是显示为白色,而imshow显示uint8型时是0~255范围。而经过运算的范围在0-255之间的double型数据就被不正常得显示为白色图像了。Double型好于uint8型。
有两个解决方法:
1> imshow(I/256); -----------将图像矩阵转化到0-1之间
2> imshow(I,[]); -----------自动调整数据的范围以便于显示.
从实验结果看两种方法都解决了问题,但是从显示的图像看,第二种方法显示的图像明暗黑白对比的强烈些!
3.向量索引
v=[1 3 5 7 9]
v =
1 3 5 7 9
>> v(2)
ans =
3
>> w=v.'
w =
1
3
5
7
9
>> v(1:3)
ans =
1 3 5
>> v(2:5)
ans =
3 5 7 9
>> v(2:end)
ans =
3 5 7 9
>> v([1 4 5])
ans =
1 7 9
矩阵索引
A=[1 2 3;4 5 6;7 8 9]
A =
1 2 3
4 5 6
7 8 9
>> A(2,3)
ans =
6
>> C3=A(:,3)
C3 =
3
6
9
>> R2=A(2,:)
R2 =
4 5 6
>> T2=A(1:2,1:3)
T2 =
1 2 3
4 5 6
B=A ;
>> B(:, 3)=0
B =
1 2 0
4 5 0
7 8 0
>> A(end,end)
ans =
9
A(end, end - 2)
ans =
7
>> A(2:end, end:-2:1)(列上索引从最后一个元素开始计数,步长为-2,直到第一个元素时停止)
ans =
6 4
9 7
>> E=A([1 3], [2 3])
E =
2 3
8 9
>> D=logical([1 0 0;0 0 1;0 0 0])
D =
1 0 0
0 0 1
0 0 0
>> A(D)(一种特殊的寻址方式)
ans =
1
6
>> V=T2(:)(单个引号会选择该数组的全部元素(以逐列的方式),并将这些元素排成一个列向量的形式)
V =
1
4
2
5
3
6
>> s=sum(A(:))(求和)
s =
45
相关文章推荐
- modal
- 一步一步制作yaffs/yaffs2根文件系统(五)---生成yaffs/yaffs2镜像文件及下载到开发板
- 河狸家:Redis 源码的深度剖析
- 创建多线程的第二种方法
- 1007. 素数对猜想 (20)
- JS实现一个简单的网页钟表
- 一步一步制作yaffs/yaffs2根文件系统(四)---构建etc、dev等剩余目录
- 网络协议
- 信息安全系统设计基础实验一:Linux开发环境的配置和使用
- ASP.NET-MVC4-06-ViewData-ViewBag
- 一步一步制作yaffs/yaffs2根文件系统(三)---使用glibc库构造 /lib
- HBase基本数据操作详解【完整版,绝对精品】
- HackTheGame
- Myeclipse下tomcat报错publishing to tomcat.......
- ubuntu下zabbix服务器监控工具部署
- 如何只遍历一次判断一棵二叉树是否为平衡二叉树
- (译)你应该知道的jQuery技巧
- 大整数的四则运算
- HDOJ 1950 Bridging signals(LIS)
- 单例