您的位置:首页 > 其它

索引

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
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: