Matlab相关函数

matlab的数组下标是从1开始的!!!

 

 

imread()  从图形文件读取图像

img=imread('su.bmp')

     matlab读入图像的数据是uint8,而matlab中数值一般采用double型(64位)存储和运算。所以要先将图像转为double格式的才能运算

img=double(img)

 

imwrite() 将图像写入图形文件

%将一个 50×50 的灰度值数组写入myGray.png图片。 

A = rand(50);
imwrite(A,'myGray.png')

 

imhist()  显示图像的灰度直方图

灰度直方图反映了灰度图像中不同灰度级出现的统计情况

imhist(img)

 

mod() 取模函数

mod(a,b)  求 a%b

rem()也是取模运算,mod()和rem()的区别在于当a和b有负数的时候

 

bitand()   按位与

  返回两个数值型数值在按位进行   AND   运算后的结果

%求a&b

x = bitand(a,b)

 

fopen()  打开文件

f_id = fopen("a.txt",'r')   %打开要读取的文件

f_id = fopen("a.txt",'w+')  %打开或创建要读写的新文件。如果原来有内容会擦掉重新写

r : 只能读, 必须存在, 可在任意位置读取

w : 只能写, 可以不存在, 必会擦掉原有内容从头写

r+ : 可读可写, 必须存在, 可在任意位置读写, 读与写共用同一个指针

w+ : 可读可写, 可以不存在, 必会擦掉原有内容从头写

 

fread()  读取文件

fread函数主要用法是从文件中读取二进制数据

[ msg, len_total] = fread( f_id, 'ubit1')


%'ubit1'是一次读取一个二进制位,就是一次读取一个比特
%'ubit8'是一次读取8个二进制位,就是一次读取一个字节
%'ubit4'是一次读取4个二进制位

 

fwrite() 写入文件

fwrite( frr, 1, 'ubit1')

%'ubit1'是一次写入一个二进制位
% 这句话的意思是将1写进去

 

bitshift()  移位函数

a = bitshift(A,k)

%将A向左偏移K位,这等效于乘以2的k次方

 

rand() 生成随机数

rand(a,b)   

%生成a行b列的随机数,大小为(0,1)的double
% a和b是行数列数,生成随机数的大小一直是(0,1)

rand(n)
%生成n行n列的随机数,大小为(0,1)的double

 

dct2() / dctmtx()   进行DCT变换

I = rand(N)

D = dct2(I)

%对I进行DCT变换
%I是N*N的矩阵
 %如果矩阵I是N×N方阵,则I的DCT变换可用T×I×T'来计算,注意其中的N是维数,不是矩阵

T = dctmtx(N)

D = T * I * T'

即 dct2(I)= T*I*T'

 

blkproc()  对图像进行分块处理

即block processing的意思

函数调用形式:B = blkproc(A,[m n],fun, parameter1, parameter2, ...)

        [m n] :图像以m*n为分块单位,对图像进行处理(如8像素*8像素)
        Fun:   应用此函数对分别对每个m*n分块的像素进行处理
        parameter1, parameter2: 要传给fun函数的参数 
例:pic=imread('lena.bmp');

img=blkproc(pic,[8,8],'dct2');

该例中把lena.bmp图片分成8*8像素块进行dct2变换。
B=blkproc(I,[8,8],'P1*x*P2',T,T');

%x就是每一个分成的8*8大小的块,P1*x*P2相当于像素块的处理函数,p1=T p2=T’,也就是fun=p1*x*p2'=T*x*T'的功能是进行离散余弦变换

 

 

 

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值