《数字图像处理》冈萨雷斯学习笔记1:基本原理

一、图像的读取和显示

A=imread(FILENAME,FMT)

f = imread('D:\myimage\chestxray.jpg');

二、图像的写入

inwrite(A,FILENAME,FMT)

inwrite(f,'patient10_run1.tif')
只使用于JPEG图像

imwrite(f,'filename.jpg','quality',q)
三、图像的显示

imshow(f,[low high])
figure; %创建一个新窗口
subplot(m,n,p);%打开一个有m行n列图像%位置的窗口,并将焦点位于第p个位置上。
%%=======================
figure;
subplot(m,n,p);
inshow(f);
四、图像格式的转换

im2uint8     将图像装换成uint8类型   将输入中所有小于0的值设置为0,大于1的值设置为255,其他值乘以255.

im2uint16   将图像装换成uint16类型

rgb2gray    从RGB图创建灰度图,存储类型不变。

im2bw(f,T) 通过阈值处理,将一幅亮度图像转换成一幅二值图像g。

im2double  将图像转换成double类型(Matlab中所有的数值计算都可用double类来进行,所以它也是图像处理应用中最常见使用的数据类)

mat2gray   讲一个矩阵转换成一个强度图(但是什么叫强度图呢?)0对应的是黑色,1对应的是白色。

补充知识点:

1、TIFF 加标识的图像文件格式   .tif   .tiff

2、当用imshow显示另一幅图像g时,Matlab会再屏幕上用新图像替换旧图像,为了保持第一幅图像并同时显示第二幅图像,可以使用figure函数。

figure,imshow(g)
3、图像的类型:亮度图像、二值图像、索引图像、RGB图像。

4、若v是一个向量,则v(:)产生一个列向量,v(1:end)产生一个行向量。

5、ture(M,N)生成一个大小为M*N的logical类矩阵,其元素为1.

     false(M,N)生成一个大小为M*N的logical类矩阵,其元素为0.

6、rand(M,N)生成一个大小为M*N的矩阵,矩阵中元素都在区间[0,1]中均匀分布的随机数。

     randn(M,N)生成一个大小为M*N的矩阵,矩阵中元素是正态分布的随机数,随机数的均值是0,方差是1.

7、函数定义:function[outputs]=name(inputs) 注意输出变量必须位于方括号内,而输入变量必须位于圆括号内。

8、算数运算符 A*B表示矩阵乘法,而A.*B则表示数组乘法。

9、B=A指的仅仅是做一个B等于A的“记录”,但实际上并不将数据复制到B。记住MATLAB没有复制信息这一功能。

10、all函数:检测矩阵中是否全为非零元素,如果是,则返回1,否则,返回0。
       any函数:检测矩阵中是否有非零元素,如果有,则返回1,否则,返回0。

11、可以用whos f 来查看图片的信息。

12、f(x,y)=Asin(ux+vy)    x=0,1,2……,M-1   y=0,1,2……,N-1 生成该图像

%First implement using for loops
tic
for r = 1:M
    ux = u*(r-1);
    for c = 1:N
        vy = v*(c-1);
        f(r,c) = A*sin(ux+cy);
    end
end
t1 = toc;                %End timing
%Now implement using vectorization. call the image g
tic    %start timing
r = 0:M-1;
c = 0:N-1;
[C,R] = meshgrid(c,r);   %将行向量c,r指定的域变换成数组C,R
g = A*sin(u*R + v*C);
t2 = toc;                %End timing
%compute the ratio of the two times
rt = t1/(t2 + eps);
[rt,f,g] = twodsin(1,1/(4*pi),1/(4*pi),512,512);
g = mat2gray(g);
imshow(g)
向量化循环效率更高。

12、从给定图像中提取子图像,提取大小为m*n且其左上角坐标为(rx,cy)的区域s

rowhigh = rx+m-1;   %Matlab中图像的原点在(1,1)处
colhigh = cy+n-1;
s = f (rx:rowhigh,cy:colhigh);





你可能感兴趣的:(《数字图像处理》冈萨雷斯学习笔记1:基本原理)