索引

来源:互联网 发布:阿里云英文缩写 编辑:程序博客网 时间:2024/04/30 03:15

常用基本代码

1a=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

 

0 0
原创粉丝点击