MATLAB数字图像处理中的指令用法

合集下载

数字图像处理matlab代码

数字图像处理matlab代码

一、编写程序完成不同滤波器的图像频域降噪和边缘增强的算法并进行比较,得出结论。

1、不同滤波器的频域降噪1.1 理想低通滤波器(ILPF)I1=imread('eight.tif'); %读取图像I2=im2double(I1);I3=imnoise(I2,'gaussian',0.01);I4=imnoise(I3,'salt & pepper',0.01);figure,subplot(1,3,1);imshow(I2) %显示灰度图像title('原始图像'); %为图像添加标题subplot(1,3,2);imshow(I4) %加入混合躁声后显示图像title('加噪后的图像');s=fftshift(fft2(I4)); %将灰度图像的二维不连续Fourier 变换的零频率成分移到频谱的中心[M,N]=size(s); %分别返回s的行数到M中,列数到N中n1=floor(M/2); %对M/2进行取整n2=floor(N/2); %对N/2进行取整d0=40; %初始化d0for i=1:Mfor j=1:Nd=sqrt((i-n1)^2+(j-n2)^2); %点(i,j)到傅立叶变换中心的距离 if d<=d0 %点(i,j)在通带内的情况h=1; %通带变换函数else %点(i,j)在阻带内的情况h=0; %阻带变换函数ends(i,j)=h*s(i,j); %ILPF滤波后的频域表示endends=ifftshift(s); %对s进行反FFT移动s=im2uint8(real(ifft2(s))); %对s进行二维反离散的Fourier变换后,取复数的实部转化为无符号8位整数subplot(1,3,3); %创建图形图像对象imshow(s); %显示ILPF滤波后的图像title('ILPF滤波后的图像(d=40)');运行结果:1.2 二阶巴特沃斯低通滤波器(BLPF)I1=imread('eight.tif'); %读取图像I2=im2double(I1);I3=imnoise(I2,'gaussian',0.01);I4=imnoise(I3,'salt & pepper',0.01);figure,subplot(1,3,1);imshow(I2) %显示灰度图像title('原始图像'); %为图像添加标题subplot(1,3,2);imshow(I4) %加入混合躁声后显示图像title('加噪后的图像');s=fftshift(fft2(I4));%将灰度图像的二维不连续Fourier 变换的零频率成分移到频谱的中心[M,N]=size(s); %分别返回s的行数到M中,列数到N中n=2; %对n赋初值n1=floor(M/2); %对M/2进行取整n2=floor(N/2); %对N/2进行取整d0=40; %初始化d0for i=1:Mfor j=1:Nd=sqrt((i-n1)^2+(j-n2)^2); %点(i,j)到傅立叶变换中心的距离 h=1/(1+(d/d0)^(2*n)); %BLPF滤波函数s(i,j)=h*s(i,j); %ILPF滤波后的频域表示endends=ifftshift(s); %对s进行反FFT移动s=im2uint8(real(ifft2(s))); %对s进行二维反离散的Fourier变换后,取复数的实部转化为无符号8位整数subplot(1,3,3); %创建图形图像对象imshow(s); %显示ILPF滤波后的图像title('BLPF滤波后的图像(d=40)');实验结果:1.3 指数型低通滤波器(ELPF)I1=imread('eight.tif'); %读取图像I2=im2double(I1);I3=imnoise(I2,'gaussian',0.01);I4=imnoise(I3,'salt & pepper',0.01);figure,subplot(1,3,1);imshow(I2) %显示灰度图像title('原始图像'); %为图像添加标题subplot(1,3,2);imshow(I4) %加入混合躁声后显示图像title('加噪后的图像');s=fftshift(fft2(I4));%将灰度图像的二维不连续Fourier 变换的零频率成分移到频谱的中心[M,N]=size(s); %分别返回s的行数到M中,列数到N中n1=floor(M/2); %对M/2进行取整n2=floor(N/2); %对N/2进行取整d0=40;for i=1:Mfor j=1:Nd=sqrt((i-n1)^2+(j-n2)^2); %点(i,j)到傅立叶变换中心的距离 h=exp(log(1/sqrt(2))*(d/d0)^2);s(i,j)=h*s(i,j); %ILPF滤波后的频域表示endends=ifftshift(s); %对s进行反FFT移动s=im2uint8(real(ifft2(s))); %对s进行二维反离散的Fourier变换后,取复数的实部转化为无符号8位整数subplot(1,3,3); %创建图形图像对象imshow(s); %显示ILPF滤波后的图像title('ELPF滤波后的图像(d=40)');运行结果:1.4 梯形低通滤波器(TLPF)I1=imread('eight.tif'); %读取图像I2=im2double(I1);I3=imnoise(I2,'gaussian',0.01);I4=imnoise(I3,'salt & pepper',0.01);figure,subplot(1,3,1);imshow(I2) %显示灰度图像title('原始图像'); %为图像添加标题subplot(1,3,2);imshow(I4) %加入混合躁声后显示图像title('加噪后的图像');s=fftshift(fft2(I4));%将灰度图像的二维不连续Fourier 变换的零频率成分移到频谱的中心[M,N]=size(s); %分别返回s的行数到M中,列数到N中n1=floor(M/2); %对M/2进行取整n2=floor(N/2); %对N/2进行取整d0=10;d1=160;for i=1:Mfor j=1:Nd=sqrt((i-n1)^2+(j-n2)^2); %点(i,j)到傅立叶变换中心的距离 if (d<=d0)h=1;else if (d0<=d1)h=(d-d1)/(d0-d1);else h=0;endends(i,j)=h*s(i,j); %ILPF滤波后的频域表示endends=ifftshift(s); %对s进行反FFT移动s=im2uint8(real(ifft2(s))); %对s进行二维反离散的Fourier变换后,取复数的实部转化为无符号8位整数subplot(1,3,3); %创建图形图像对象imshow(s); %显示ILPF滤波后的图像title('TLPF滤波后的图像'); %为图像添加标题运行结果:1.5 高斯低通滤波器(GLPF)I1=imread('eight.tif'); %读取图像I2=im2double(I1);I3=imnoise(I2,'gaussian',0.01);I4=imnoise(I3,'salt & pepper',0.01);figure,subplot(1,3,1);imshow(I2) %显示灰度图像title('原始图像'); %为图像添加标题subplot(1,3,2);imshow(I4) %加入混合躁声后显示图像title('加噪后的图像');s=fftshift(fft2(I4));%将灰度图像的二维不连续Fourier 变换的零频率成分移到频谱的中心[M,N]=size(s); %分别返回s的行数到M中,列数到N中n1=floor(M/2); %对M/2进行取整n2=floor(N/2); %对N/2进行取整d0=40;for i=1:Mfor j=1:Nd=sqrt((i-n1)^2+(j-n2)^2); %点(i,j)到傅立叶变换中心的距离 h=1*exp(-1/2*(d^2/d0^2)); %GLPF滤波函数s(i,j)=h*s(i,j); %ILPF滤波后的频域表示endends=ifftshift(s); %对s进行反FFT移动s=im2uint8(real(ifft2(s))); %对s进行二维反离散的Fourier变换后,取复数的实部转化为无符号8位整数subplot(1,3,3); %创建图形图像对象imshow(s); %显示ILPF滤波后的图像title('GLPF滤波后的图像(d=40)');运行结果:1.6 维纳滤波器[B,Cmap]=imread('eight.tif'); %读取MATLAB中的名为eight的图像I1=im2double(B);I2=imnoise(I1,'gaussian',0.01);I3=imnoise(I2,'salt & pepper',0.01);figure,subplot(1,3,1);imshow(I1) %显示灰度图像title('原始图像'); %为图像添加标题subplot(1,3,2);imshow(I3) %加入混合躁声后显示图像title('加噪后的图像');I4=wiener2(I3);subplot(1,3,3);imshow(I4); %显示wiener滤波后的图像title('wiener滤波后的图像');运行结果:结论:理想低通滤波器,虽然有陡峭的截止频率,却不能产生良好的效果,图像由于高频分量的滤除而变得模糊,同时还产生振铃效应。

(完整版)数字图像处理MATLAB程序【完整版】

(完整版)数字图像处理MATLAB程序【完整版】

第一部分数字图像处理实验一图像的点运算实验1.1 直方图一.实验目的1.熟悉matlab图像处理工具箱及直方图函数的使用;2.理解和掌握直方图原理和方法;二.实验设备1.PC机一台;2.软件matlab。

三.程序设计在matlab环境中,程序首先读取图像,然后调用直方图函数,设置相关参数,再输出处理后的图像。

I=imread('cameraman.tif');%读取图像subplot(1,2,1),imshow(I) %输出图像title('原始图像') %在原始图像中加标题subplot(1,2,2),imhist(I) %输出原图直方图title('原始图像直方图') %在原图直方图上加标题四.实验步骤1. 启动matlab双击桌面matlab图标启动matlab环境;2. 在matlab命令窗口中输入相应程序。

书写程序时,首先读取图像,一般调用matlab自带的图像,如:cameraman图像;再调用相应的直方图函数,设置参数;最后输出处理后的图像;3.浏览源程序并理解含义;4.运行,观察显示结果;5.结束运行,退出;五.实验结果观察图像matlab环境下的直方图分布。

(a)原始图像 (b)原始图像直方图六.实验报告要求1、给出实验原理过程及实现代码;2、输入一幅灰度图像,给出其灰度直方图结果,并进行灰度直方图分布原理分析。

实验1.2 灰度均衡一.实验目的1.熟悉matlab图像处理工具箱中灰度均衡函数的使用;2.理解和掌握灰度均衡原理和实现方法;二.实验设备1.PC机一台;2.软件matlab;三.程序设计在matlab环境中,程序首先读取图像,然后调用灰度均衡函数,设置相关参数,再输出处理后的图像。

I=imread('cameraman.tif');%读取图像subplot(2,2,1),imshow(I) %输出图像title('原始图像') %在原始图像中加标题subplot(2,2,3),imhist(I) %输出原图直方图title('原始图像直方图') %在原图直方图上加标题a=histeq(I,256); %直方图均衡化,灰度级为256subplot(2,2,2),imshow(a) %输出均衡化后图像title('均衡化后图像') %在均衡化后图像中加标题subplot(2,2,4),imhist(a) %输出均衡化后直方图title('均衡化后图像直方图') %在均衡化后直方图上加标题四.实验步骤1. 启动matlab双击桌面matlab图标启动matlab环境;2. 在matlab命令窗口中输入相应程序。

matlab画图常用命令

matlab画图常用命令

matlab画图常用命令clc 清理命令窗口历史内容clear 清除所有内存存储的变量值clf 清除图形whos 显示各变量信息sqrt 开方edit 开编辑窗口linspace(a,b,N) 定义等差数列,a初值,b末值,N步数(即数据个数)logspace(a,b,N) 定义等比数列,初值10^a,末值10^b,N步数(即数据个数)A.*B 矩阵点乘,对应项相乘A./B 矩阵点除A.^B 矩阵点方(指数相同也要用点方)A=[a:n:b] 定义以a为开始,步长为n的等差数列,最后一个数不超过b(n省略代表步长为1)A' 矩阵转置A=[B,C;D] 矩阵拼凑e *10^exp e^format long 后续数据显示小数点后15位format short 后续数据显示小数点后4位format bank 后续数据显示小数点后2位(不适用于复数)format long/short e 后续数据科学技术法显示,并且小数点后15位/4位format long/short eng 后续数据类似科学技术法显示,但指数保持为3的整数倍,并且有效位数(15位+1/4位+1)format + 矩阵中各元素只显示正负,零为空格format rat 以分数形式显示有理数format long/short g Matlab自定最优显示load/save +文件名载入/储存工作区数据rem(a,b) a/b的余数size(A) A矩阵的大小[行数列数]ylim([0,1])help 打开帮助界面help+帮助界面中对应标题查看对应函数的使用nthroot(x,n) x的n次实数根sign(x) x大于零输出1;x等于零输出0;x小于零输出-1log10(x) lg(x)log(x) ln(x)【注:logb(a)=ln(a)/ln(b)】fix(x) 取整round(x) 对x四舍五入floor(x) 对x向负取整ceil(x) 对x向正取整factor(x) 对x因式分解gcd(a,b) 求a,b最大公约数lcm(a,b) 求a,b最小公倍数rats(x) 用分数表示xfactorial(x) x!nchoosek(n,k) 组合数n选kprimes(x) 找出小于x的素数isprime(x) x是素数,返回1sin(),cos(),tan()... 自变量为弧度asin(),acos(),atan()... 结果为弧度max(x),min(x) x适量中的最大、最小值[a,b]=max(A) A为一行时,a为最大值,b为最大值单行位置A为m行n列时,a为m行向量,对应各列最大值,b为m行向量,对应各列最大值在该列位置多个最大值时,位置默认第一个max(A,B) A、B同大,结果为A,B中对应位置最大值的汇总矩阵mean()/median()/mode() 求平均值/中位数/众数(众数选最小值)cumsum/cumprod(A) 求A的累加/累乘结果,生成与A同大小矩阵,(列运算)单矩阵运算sum/prod(A) A矩阵列求和/求积或求行向量和/积sort(A)/sort(A,'descend') 将A升序/降序排列(行向量自身升序/降序,矩阵列升序/降序)sortrows(A,n) 按第n列排列各行,n正升序,n负降序,n省略第一列升序size(x)/[a,b]=size(x) 返回[行数,列数]/给a、b赋值length(A) 矩阵A的最大长度(行数和列数的最大值)std(A) 求A的标准差(行向量自身求解,矩阵列求解)var(A) 求A的方差(行向量自身求解,矩阵列求解)rand/randn(m,n) 生成(0,1)m×n随机数矩阵/生成均值为0,标准差为1的高斯随机数矩阵(正态分布)【通过randn(m,n)*std+mean可得到均值为mean,标准差为std的正态分布随机数矩阵】A+B*i(complex(A,B)) 生成复数或复数矩阵real(A)/imag(A) 求实部/虚部isreal(A) 实数返回1coni(A) 求共轭【或用A'也可,但会发生行列互换】x为复数时abs(x)/angle(x) 求复数的模,与水平方向的夹角realmax/realmin 返回MATLAB能够使用的最大/最小浮点数intmax/intmin 返回MATLAB能够使用的最大/最小整数pi/i/j 圆周率/虚数/虚数clock 当前时间(一般使用fix(clock)增加可读性)date 返回日期,以字符串形式eps 返回MATLAB最小间隔矩阵A(n,:)/(:,m)【A(n,end)/(end,m)】A矩阵的第n行【最后一列】/第m列【最后一行】[A,B]=meshgrid(a,b),A.*B a,b为行向量,运行结果得a*b的m*n 维矩阵【meshgrid(x)等价于meshgrid(x,x)】zeros(m)/(m,n) m*m/m*n全零矩阵ones(m)/(m,n) m*m/m*n全一矩阵diag(A) 取对角元素为列向量diag(x) 若x为行向量或列向量,结果为对角阵其他元素为零diag(A,n/-n) 对角线右上/左下第n斜线上的元素fliplr(A)/flipud(A) A矩阵列/行进行对称翻转magic(m) 创建m*m维魔方矩阵作图xlabel/ylabel('') 添加x/y轴坐标title('') 添加表头grid 使图像出现网格figure(x) 创建或打开figure x窗口,之后作图均在该窗口进行hold on 保持图像窗口中之前的图像,进而在此作图不会清除之前图像(hold off取消)plot(x1,y1,x2,y2) 同时做两个图像plot(x) x为行向量,则以点数1至n为横轴,x为纵轴作图,按顺序依次连线plot(A) A为m*n矩阵,则图像为那条曲线,每条曲线横轴均为1至m,纵轴为相应列对应值plot(x,A) 以x为横轴,A的每一列为纵轴作图(x与A同维)plot(A,B) A与B需同维,对应列分别作为横轴和纵轴作图plot('标识符') 线型:-实线:点-.点画线--虚线点型:.点o圆圈xx形状+加号*星号s方形d菱形v下三角^上三角<左三角>右三角p五角星h六角星颜色:b蓝色g绿色r红色c青色m洋红色y黄色k黑色w白色【注】,多重输出可多重设定axis([a,b,c,d]) 限制图像x轴在[a,b],y轴在[c,d]legend('string1','string2',etc) 按照作图顺序添加图注text(x,y,'string') 在(x,y)处添加文本‘string’gtext('string') 添加文本‘string’,位置由鼠标点击确定【注】(适用于string形式)输入希腊字母需要'\'+希腊字母读法;^ 可出现上标,_ 可出现下标若想输出_或^,可用\+相应符号subplot(m,n,k) 将图形窗口划分成m行n列,所有的绘图操作都在一行一行数的第k个子图中进行【注】clf针对消除一个figure窗口内的内容,而plot等一系列操作针对一个子图中,且hold on/off被限于特定一个子图中,不影响其他子图polar(x,y) 绘制极图semilogx/semilogy(x,y) x轴对数,y轴线性/x轴线性,y轴对数作图loglog(x,y) 双对数坐标作图bar(x)/barh(x) x为矢量时,按x绘制垂直/水平条形图x为矩阵时,按各行分组绘制垂直/水平条形图bar3(x)/bar3h(x) 同上,绘制三维条形图pie(x)/pie3(x) 绘制(三维)饼状图。

matlab的常用指令及其含义

matlab的常用指令及其含义

matlab的常用指令及其含义1、清除命令窗口clc2、清除变量clear3、清除figureclf4、生成一个图层figure()figure(1)figure('name','实例')gwin=figure('MenuBar','none','NumberTitle','off','Name','菜单创建演示','Position',[(rect(3)-N)/2,(rect(4)-N)/2,N,N],'Resize','off','Color','red');5、打印disp(a)fprintf('the value of pi is%6.2f\n',pi)6、字符串和数字转换str2num(123)num2str('123')7、取整函数floor(2.3)==2 %为向下取整ceil(2.3)==3 %为向上取整round(2.3)==2 %为取最接近的整数fix(-3.5)==-3 %为向0取整8、复数运算temp = complex(1,2) %构造函数,==2+5ireal(temp) == 1 %返回实部imag(temp)==5 %返回虚部abs(temp)==5.3852 %返回模conj(temp)==2-5i %返回共轭复数9、快速生成矩阵A=zeros(5) %5行5列的0矩阵B=ones(5) %5行5列的1矩阵A=zeros(m,n) %m行n列0矩阵B=ones(m,n) %m行n列1矩阵A=eye(5) %5行5列的单位矩阵B=rand(3,5) %3行5列的0~1之间的随机矩阵A=magic(5) %5行5列的魔方矩阵,注意这里行和列必须相同10、生成随机矩阵rand(1,5) %生成一个1行5列的矩阵,即行向量11、求最大值max12、数据库结果转矩阵data_mat = cell2mat(data_cell);data_cell是数据库返回的结果,data_mat是矩阵13、求转置矩阵a=[1; 2; 3];b=a.'; %点+单引号b->{1 2 3}14、打印时间disp(datestr(datetime('now')));15、将矩阵转化为列向量,即列矩阵B=A(:); %A是矩阵16、读取矩阵取前N行或N列A(1:2,:) %读取矩阵A的1~2行A(:,1:3) %读取矩阵A的1~3列17、矩阵运算(加、减、乘、除、点乘、点除等)(1)A+B; 表示矩阵A和矩阵B相加(各个元素对应相加);(2)A-B; 表示矩阵A和矩阵B相减(各个元素对应相减);(3)A*B; 表示矩阵A和矩阵B相乘;(4)A.*B; 表示矩阵A和矩阵B对应元素相乘(点乘);(5)A/B; 表示矩阵A与矩阵B相除法;(6)A./B; 表示矩阵A和矩阵B对应元素相除(点除);(7)A^B; 表示矩阵A的B次幂;(8)A.^B; 表示矩阵A的每个元素的B次幂18、获取数组的行数和列数[rows,colums]=size(cell_data); %cell_data是2行3列的数组,rows==2 colums==319、获取数组的指定行和指定列first = cell_data(1,:); %第一行所有列first = cell_data(:,1); %第一列所有行。

数字图像处理MATLAB程序【完整版】

数字图像处理MATLAB程序【完整版】

第一部分数字图像处理实验一图像的点运算实验1.1直方图一.实验目的1 •熟悉matlab图像处理工具箱及直方图函数的使用;2•理解和掌握直方图原理和方法;二.实验设备1. PC 机一台;2.软件matlab。

三.程序设计在matlab环境中,程序首先读取图像,然后调用直方图函数,设置相关参数,再输出处理后的图像。

l=imread('camerama n.tif);% 读取图像subplot(1,2,1),imshow(l) % 输出图像title(' 原始图像')% 在原始图像中加标题subplot(1,2,2),imhist(l) % 输出原图直方图title(' 原始图像直方图')%在原图直方图上加标题四.实验步骤1. 启动matlab双击桌面matlab图标启动matlab 环境;2. 在matlab命令窗口中输入相应程序。

书写程序时,首先读取图像,一般调用matlab自带的图像,如:cameraman图像;再调用相应的直方图函数,设置参数;最后输出处理后的图像;3•浏览源程序并理解含义;4. 运行,观察显示结果;5. 结束运行,退出;五.实验结果观察图像matlab环境下的直方图分布。

(a)原始图像(b) 原始图像直方图六.实验报告要求1、给出实验原理过程及实现代码;2、输入一幅灰度图像,给出其灰度直方图结果,并进行灰度直方图分布原理分析。

实验1.2灰度均衡一.实验目的1 .熟悉matlab图像处理工具箱中灰度均衡函数的使用;2•理解和掌握灰度均衡原理和实现方法;二.实验设备1. PC机一台;2. 软件matlab ;三.程序设计在matlab环境中,程序首先读取图像,然后调用灰度均衡函数,设置相关参数,再输出处理后的图像。

l=imread('camerama n.tif);% 读取图像subplot(2,2,1),imshow(l) % 输出图像title(' 原始图像')% 在原始图像中加标题subplot(2,2,3),imhist(l) % 输出原图直方图title(' 原始图像直方图')%在原图直方图上加标题a=histeq(l,256); % 直方图均衡化,灰度级为256subplot(2,2,2),imshow(a) % 输出均衡化后图像title(' 均衡化后图像')%在均衡化后图像中加标题subplot(2,2,4),imhist(a) % 输出均衡化后直方图title(' 均衡化后图像直方图')%在均衡化后直方图上加标题四.实验步骤1. 启动matlab双击桌面matlab图标启动matlab 环境;2. 在matlab命令窗口中输入相应程序。

matlab数字图像处理intrans函数学习笔记

matlab数字图像处理intrans函数学习笔记

matlab数字图像处理intrans函数学习笔记intrans函数如下:function g = intrans(f,varargin)error (nargchk(2,4,nargin))%check inputclassin = class(f);%stroe the class of the input for use later.if strcmp(class(f),'double') & max(f(:))>1 & ~strcmp(varargin{1},'log')f = mat2gray(f);%if all the 3 conditions is filling the need .else% make sure the class(f) is in the class of double , f(:) means all the% elemnets in the martix F, and the max(f(:))>1 means if the max(f(:))>1 so% convert them into double , in this way they are all less then1.% strcmp(varargin[1],'log') is the string compare, and the varargin {1}% compares with log.f = im2double(f);endmethod = varargin{1};switch methodcase 'neg'g = imcomplement(f);case 'log'if length(varargin) == 1c = 1;elseif length(varargin) == 2c = varargin{2};elseif length(varargin) == 3c = varargin{2};classin = varargin{3};elseerror('Incorrect number of input for the log option.')endg = c*(log(1+double(f)));case 'gamma'if length(varargin) < 2error('not enough input for the gamma option')endgam = varargin{2};g = imadjust (f, [], [], gam);case 'stretch'if length(varargin) == 1%defaults vaulem = mean2(f);E = 4.0;elseif length(varargin) == 3m = varargin{2};E = varargin{3};else error('incorrect number of inputs for the srtetch option.')endg = 1./(1 + (m./(f+eps)).^E);otherwiseerror('unkown enhancement method.')end% g = changeclass(classin , g);说实话,对matlab的代码风格不是很习惯,后来看着看着感觉和才⾮常相似,也就看起来舒服多了这段代码刚开始没看懂,尤其是varargin{}的⼀直不明⽩,但加断点后,将整个程序跑了⼀遍,基本就明⽩了,这⾥不得不说,中⽂版书上将的不是很明⽩。

数字图像处理 matlab代码

数字图像处理 matlab代码

MATLAB实用源代码图像读取及灰度变换I=imread('cameraman.tif');%读取图像subplot(1,2,1),imshow(I) %输出图像title('原始图像') %在原始图像中加标题subplot(1,2,2),imhist(I) %输出原图直方图title('原始图像直方图') %在原图直方图上加标题图像旋转I = imread('cameraman.tif');figure,imshow(I);theta = 30;K = imrotate(I,theta); % Try varying the angle, theta. figure, imshow(K)边缘检测I = imread('cameraman.tif');J1=edge(I,'sobel');J2=edge(I,'prewitt');J3=edge(I,'log');subplot(1,4,1),imshow(I);subplot(1,4,2),imshow(J1);subplot(1,4,3),imshow(J2);subplot(1,4,4),imshow(J3);1.图像反转MATLAB 程序实现如下:I=imread('xian.bmp');J=double(I);J=-J+(256-1); %图像反转线性变换H=uint8(J);subplot(1,2,1),imshow(I);subplot(1,2,2),imshow(H);2.灰度线性变换MATLAB 程序实现如下:I=imread('xian.bmp');subplot(2,2,1),imshow(I);title('原始图像');axis([50,250,50,200]);axis on; %显示坐标系I1=rgb2gray(I);subplot(2,2,2),imshow(I1);title('灰度图像');axis([50,250,50,200]);axis on; %显示坐标系J=imadjust(I1,[0.1 0.5],[]); %局部拉伸,把[0.1 0.5]内的灰度拉伸为[0 1] subplot(2,2,3),imshow(J);title('线性变换图像[0.1 0.5]');axis([50,250,50,200]);grid on; %显示网格线axis on; %显示坐标系K=imadjust(I1,[0.3 0.7],[]); %局部拉伸,把[0.3 0.7]内的灰度拉伸为[0 1] subplot(2,2,4),imshow(K);title('线性变换图像[0.3 0.7]');axis([50,250,50,200]);grid on; %显示网格线axis on; %显示坐标系3.非线性变换MATLAB 程序实现如下:I=imread('xian.bmp');I1=rgb2gray(I);subplot(1,2,1),imshow(I1);title(' 灰度图像');axis([50,250,50,200]);grid on; %显示网格线axis on; %显示坐标系J=double(I1);J=40*(log(J+1));H=uint8(J);subplot(1,2,2),imshow(H);title(' 对数变换图像');axis([50,250,50,200]);grid on; %显示网格线axis on; %显示坐标系4.直方图均衡化MATLAB 程序实现如下:I=imread('xian.bmp');I=rgb2gray(I);figure;subplot(2,2,1);imshow(I);subplot(2,2,2);imhist(I);I1=histeq(I);figure;subplot(2,2,1);imshow(I1);subplot(2,2,2);imhist(I1);5. 线性平滑滤波器用MA TLAB实现领域平均法抑制噪声程序:I=imread('xian.bmp');subplot(231)imshow(I)title('原始图像')I=rgb2gray(I);I1=imnoise(I,'salt & pepper',0.02);subplot(232)imshow(I1)title(' 添加椒盐噪声的图像')k1=filter2(fspecial('average',3),I1)/255; %进行3*3模板平滑滤波k2=filter2(fspecial('average',5),I1)/255; %进行5*5模板平滑滤波k3=filter2(fspecial('average',7),I1)/255; %进行7*7模板平滑滤波k4=filter2(fspecial('average',9),I1)/255; %进行9*9模板平滑滤波subplot(233),imshow(k1);title('3*3 模板平滑滤波');subplot(234),imshow(k2);title('5*5 模板平滑滤波');subplot(235),imshow(k3);title('7*7 模板平滑滤波');subplot(236),imshow(k4);title('9*9 模板平滑滤波');6.中值滤波器用MA TLAB实现中值滤波程序如下:I=imread('xian.bmp');I=rgb2gray(I);J=imnoise(I,'salt&pepper',0.02);subplot(231),imshow(I);title('原图像');subplot(232),imshow(J);title('添加椒盐噪声图像');k1=medfilt2(J); %进行3*3模板中值滤波k2=medfilt2(J,[5,5]); %进行5*5模板中值滤波k3=medfilt2(J,[7,7]); %进行7*7模板中值滤波k4=medfilt2(J,[9,9]); %进行9*9模板中值滤波subplot(233),imshow(k1);title('3*3模板中值滤波');subplot(234),imshow(k2);title('5*5模板中值滤波');subplot(235),imshow(k3);title('7*7模板中值滤波');subplot(236),imshow(k4);title('9*9 模板中值滤波');7.用Sobel算子和拉普拉斯对图像锐化:I=imread('xian.bmp');subplot(2,2,1),imshow(I);title('原始图像');axis([50,250,50,200]);grid on; %显示网格线axis on; %显示坐标系I1=im2bw(I);subplot(2,2,2),imshow(I1);title('二值图像');axis([50,250,50,200]);grid on; %显示网格线axis on; %显示坐标系H=fspecial('sobel'); %选择sobel算子J=filter2(H,I1); %卷积运算subplot(2,2,3),imshow(J);title('sobel算子锐化图像');axis([50,250,50,200]);grid on; %显示网格线axis on; %显示坐标系h=[0 1 0,1 -4 1,0 1 0]; %拉普拉斯算子J1=conv2(I1,h,'same'); %卷积运算subplot(2,2,4),imshow(J1);title('拉普拉斯算子锐化图像');axis([50,250,50,200]);grid on; %显示网格线axis on; %显示坐标系8.梯度算子检测边缘用MA TLAB实现如下:I=imread('xian.bmp');subplot(2,3,1);imshow(I);title('原始图像');axis([50,250,50,200]);grid on; %显示网格线axis on; %显示坐标系I1=im2bw(I);subplot(2,3,2);imshow(I1);title('二值图像');axis([50,250,50,200]);grid on; %显示网格线axis on; %显示坐标系I2=edge(I1,'roberts');figure;subplot(2,3,3);imshow(I2);title('roberts算子分割结果');axis([50,250,50,200]);grid on; %显示网格线axis on; %显示坐标系I3=edge(I1,'sobel');subplot(2,3,4);imshow(I3);title('sobel算子分割结果');axis([50,250,50,200]);grid on; %显示网格线axis on; %显示坐标系I4=edge(I1,'Prewitt');subplot(2,3,5);imshow(I4);title('Prewitt算子分割结果');axis([50,250,50,200]);grid on; %显示网格线axis on; %显示坐标系9.LOG算子检测边缘用MA TLAB程序实现如下:I=imread('xian.bmp');subplot(2,2,1);imshow(I);title('原始图像');I1=rgb2gray(I);subplot(2,2,2);imshow(I1);title('灰度图像');I2=edge(I1,'log');subplot(2,2,3);imshow(I2);title('log算子分割结果');10.Canny算子检测边缘用MA TLAB程序实现如下:I=imread('xian.bmp');subplot(2,2,1);imshow(I);title('原始图像')I1=rgb2gray(I);subplot(2,2,2);imshow(I1);title('灰度图像');I2=edge(I1,'canny');subplot(2,2,3);imshow(I2);title('canny算子分割结果');11.边界跟踪(bwtraceboundary函数)clcclear allI=imread('xian.bmp');figureimshow(I);title('原始图像');I1=rgb2gray(I); %将彩色图像转化灰度图像threshold=graythresh(I1); %计算将灰度图像转化为二值图像所需的门限BW=im2bw(I1, threshold); %将灰度图像转化为二值图像figureimshow(BW);title('二值图像');dim=size(BW);col=round(dim(2)/2)-90; %计算起始点列坐标row=find(BW(:,col),1); %计算起始点行坐标connectivity=8;num_points=180;contour=bwtraceboundary(BW,[row,col],'N',connectivity,num_points);%提取边界figureimshow(I1);hold on;plot(contour(:,2),contour(:,1), 'g','LineWidth' ,2);title('边界跟踪图像');12.Hough变换I= imread('xian.bmp');rotI=rgb2gray(I);subplot(2,2,1);imshow(rotI);title('灰度图像');axis([50,250,50,200]);grid on;axis on;BW=edge(rotI,'prewitt');subplot(2,2,2);imshow(BW);title('prewitt算子边缘检测后图像');axis([50,250,50,200]);grid on;axis on;[H,T,R]=hough(BW);subplot(2,2,3);imshow(H,[],'XData',T,'YData',R,'InitialMagnification','fit');title('霍夫变换图');xlabel('\theta'),ylabel('\rho');axis on , axis normal, hold on;P=houghpeaks(H,5,'threshold',ceil(0.3*max(H(:))));x=T(P(:,2));y=R(P(:,1));plot(x,y,'s','color','white');lines=houghlines(BW,T,R,P,'FillGap',5,'MinLength',7);subplot(2,2,4);,imshow(rotI);title('霍夫变换图像检测');axis([50,250,50,200]);grid on;axis on;hold on;max_len=0;for k=1:length(lines)xy=[lines(k).point1;lines(k).point2];plot(xy(:,1),xy(:,2),'LineWidth',2,'Color','green');plot(xy(1,1),xy(1,2),'x','LineWidth',2,'Color','yellow');plot(xy(2,1),xy(2,2),'x','LineWidth',2,'Color','red');len=norm(lines(k).point1-lines(k).point2);if(len>max_len)max_len=len;xy_long=xy;endendplot(xy_long(:,1),xy_long(:,2),'LineWidth',2,'Color','cyan');13.直方图阈值法用MA TLAB实现直方图阈值法:I=imread('xian.bmp');I1=rgb2gray(I);figure;subplot(2,2,1);imshow(I1);title(' 灰度图像')axis([50,250,50,200]);grid on; %显示网格线axis on; %显示坐标系[m,n]=size(I1); %测量图像尺寸参数GP=zeros(1,256); %预创建存放灰度出现概率的向量for k=0:255GP(k+1)=length(find(I1==k))/(m*n); %计算每级灰度出现的概率,将其存入GP中相应位置endsubplot(2,2,2),bar(0:255,GP,'g') %绘制直方图title('灰度直方图')xlabel('灰度值')ylabel(' 出现概率')I2=im2bw(I,150/255);subplot(2,2,3),imshow(I2);title('阈值150的分割图像')axis([50,250,50,200]);grid on; %显示网格线axis on; %显示坐标系I3=im2bw(I,200/255); %subplot(2,2,4),imshow(I3);title('阈值200的分割图像')axis([50,250,50,200]);grid on; %显示网格线axis on; %显示坐标系14. 自动阈值法:Otsu法用MA TLAB实现Otsu算法:clcclear allI=imread('xian.bmp');subplot(1,2,1),imshow(I);title('原始图像')axis([50,250,50,200]);grid on; %显示网格线axis on; %显示坐标系level=graythresh(I); %确定灰度阈值BW=im2bw(I,level);subplot(1,2,2),imshow(BW);title('Otsu 法阈值分割图像')axis([50,250,50,200]);grid on; %显示网格线axis on; %显示坐标系15.膨胀操作I=imread('xian.bmp'); %载入图像I1=rgb2gray(I);subplot(1,2,1);imshow(I1);title('灰度图像')axis([50,250,50,200]);grid on; %显示网格线axis on; %显示坐标系se=strel('disk',1); %生成圆形结构元素I2=imdilate(I1,se); %用生成的结构元素对图像进行膨胀subplot(1,2,2);imshow(I2);title(' 膨胀后图像');axis([50,250,50,200]);grid on; %显示网格线axis on; %显示坐标系16.腐蚀操作MATLAB 实现腐蚀操作I=imread('xian.bmp'); %载入图像I1=rgb2gray(I);subplot(1,2,1);imshow(I1);title('灰度图像')axis([50,250,50,200]);grid on; %显示网格线axis on; %显示坐标系se=strel('disk',1); %生成圆形结构元素I2=imerode(I1,se); %用生成的结构元素对图像进行腐蚀subplot(1,2,2);imshow(I2);title('腐蚀后图像');axis([50,250,50,200]);grid on; %显示网格线axis on; %显示坐标系17.开启和闭合操作用MA TLAB实现开启和闭合操作I=imread('xian.bmp'); %载入图像subplot(2,2,1),imshow(I);title('原始图像');axis([50,250,50,200]);axis on; %显示坐标系I1=rgb2gray(I);subplot(2,2,2),imshow(I1);title('灰度图像');axis([50,250,50,200]);axis on; %显示坐标系se=strel('disk',1); %采用半径为1的圆作为结构元素I2=imopen(I1,se); %开启操作I3=imclose(I1,se); %闭合操作subplot(2,2,3),imshow(I2);title('开启运算后图像');axis([50,250,50,200]);axis on; %显示坐标系subplot(2,2,4),imshow(I3);title('闭合运算后图像');axis([50,250,50,200]);axis on; %显示坐标系18.开启和闭合组合操作I=imread('xian.bmp'); %载入图像subplot(3,2,1),imshow(I);title('原始图像');axis([50,250,50,200]);axis on; %显示坐标系I1=rgb2gray(I);subplot(3,2,2),imshow(I1);title('灰度图像');axis([50,250,50,200]);axis on; %显示坐标系se=strel('disk',1);I2=imopen(I1,se); %开启操作I3=imclose(I1,se); %闭合操作subplot(3,2,3),imshow(I2);title('开启运算后图像');axis([50,250,50,200]);axis on; %显示坐标系subplot(3,2,4),imshow(I3);title('闭合运算后图像');axis([50,250,50,200]);axis on; %显示坐标系se=strel('disk',1);I4=imopen(I1,se);I5=imclose(I4,se);subplot(3,2,5),imshow(I5); %开—闭运算图像title('开—闭运算图像');axis([50,250,50,200]);axis on; %显示坐标系I6=imclose(I1,se);I7=imopen(I6,se);subplot(3,2,6),imshow(I7); %闭—开运算图像title('闭—开运算图像');axis([50,250,50,200]);axis on; %显示坐标系19.形态学边界提取利用MATLAB实现如下:I=imread('xian.bmp'); %载入图像subplot(1,3,1),imshow(I);title('原始图像');axis([50,250,50,200]);grid on; %显示网格线axis on; %显示坐标系I1=im2bw(I);subplot(1,3,2),imshow(I1);title('二值化图像');axis([50,250,50,200]);grid on; %显示网格线axis on; %显示坐标系I2=bwperim(I1); %获取区域的周长subplot(1,3,3),imshow(I2);title('边界周长的二值图像');axis([50,250,50,200]);grid on;axis on;20.形态学骨架提取利用MATLAB实现如下:I=imread('xian.bmp');subplot(2,2,1),imshow(I);title('原始图像');axis([50,250,50,200]);axis on;I1=im2bw(I);subplot(2,2,2),imshow(I1);title('二值图像');axis([50,250,50,200]);axis on;I2=bwmorph(I1,'skel',1);subplot(2,2,3),imshow(I2);title('1次骨架提取');axis([50,250,50,200]);axis on;I3=bwmorph(I1,'skel',2);subplot(2,2,4),imshow(I3);title('2次骨架提取');axis([50,250,50,200]);axis on;21.直接提取四个顶点坐标I = imread('xian.bmp');I = I(:,:,1);BW=im2bw(I);figureimshow(~BW)[x,y]=getpts。

(整理)数字图像处理MATLAB指令

(整理)数字图像处理MATLAB指令

其他常用的图像转换函数有:gray2ind函数,将灰度图像转换成索引图像。

Im2bw函数,将其它图像转化为二值图像。

Ind2gray函数,将索引图像转换成灰度图像。

Rgb2gray函数,将彩色图像转换成灰度图像。

1.利用imread( )函数读取一幅图像,存入一个数组中;2.利用whos 命令提取该读入图像flower.tif的基本信息;3.利用imshow()函数来显示这幅图像;函数执行语句A = imread('saturn.png');whosName Size Bytes Class AttributesA 1500x1200x3 5400000 uint8imshow(A)4.利用imfinfo函数来获取图像文件的压缩,颜色等等其他的详细信息;imfinfo('saturn.png')5.利用imwrite()函数来压缩这幅图象,将其保存为一幅压缩了像素的jpg 文件,设为flower.jpg;语法:imwrite(原图像,新图像,‘quality’,q), q取0-100。

imwrite(A,'xingxing.jpg','quality',25)B = imread('xingxing.jpg');6.同样利用imwrite()函数将最初读入的tif图象另存为一幅bmp图像,设为flower.bmp。

imwrite(A , 'xingxing.bmp')C = imread('xingxing.bmp');7.用im2bw将一幅灰度图像转化为二值图像,并且用imshow显示出来观察图像的特征。

F = imread('circbw.tif');im2bw(F)imshow(F)实验二图像直方图与灰度变换下面给出灰度变化的MATLAB程序f=imread('medicine_pic.jpg');g=imhist(f,256); %显示其直方图g1=imadjust(f,[0 1],[1 0]);%灰度转换,实现明暗转换(负片图像) figure,imshow(g1)g2=imadjust(f,[0.5 0.75],[0 1]);%将0.5到0.75的灰度级扩展到范围[0 1] figure,imshow(g2)g=imread('point.jpg');h=log(1+double(g));%对输入图像对数映射变换h=mat2gray(h); %将矩阵h转换为灰度图片h=im2uint8(h); %将灰度图转换为8位图figure,imshow(h)下面给出直方图均衡化增强图像对比度的MATLAB程序:I=imread(‘pollen.jpg); % 读入原图像J=histeq(I); %对原图像进行直方图均衡化处理Imshow(I); %显示原图像Title(‘原图像’); %给原图像加标题名Figure;imshow(J); %显示直方图均衡化后的图像Title(‘直方图均衡化后的图像’) ; %给直方图均衡化后的图像加标题名Figure; subplot(1,2,1) ;%对直方图均衡化后的图像进行屏幕控制;作一幅子图作为并排两幅图的第1幅图Imhist(I,64); %将原图像直方图显示为64级灰度Title(‘原图像直方图’) ; %给原图像直方图加标题名Subplot(1,2,2); %作第2幅子图Imhist(J,64) ; %将均衡化后图像的直方图显示为64级灰度Title(‘均衡变换后的直方图’) ; %给均衡化后图像直方图加标题名1、利用自己编写的灰度直方图计算程序计算rice.tif图像的直方图,并与系统自带的计算程序进行对比。

  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

• • • • • •
imshow(BW)显示一张二值图像BW imshow(X,map)用指定的调色板来显示图像 imshow(RGB)显示一张真彩色图像RGB imshow(...,display_option) imshow(x,y,A,...) imshow filename
• • • •
• • • • •
13.meshgrid
• • • • • • • • • • • • • • 函数功能生成绘制3-D图形所需的网格数据。在计算机中进行绘图操作时, 往 往需要一些采样点,然后根据这些采样点来绘制出整个图形。在进行3-D绘图 操作时,涉及到x、y、z三组数据,而x、y这两组数据可以看做是在Oxy平面 内对坐标进行采样得到的坐标对(x, y)。 例如:画一个128*128,截止频率为15的理想滤波器 for u=1:128 for v=1:128 if sqrt((u-64)^2+(v-64)^2)<=15 H(u,v)=1; else H(u,v)=0; end end end imshow(H); [u,v]=freqspace(128,'meshgrid'); figure,mesh(u,v,H)
• matlab中,每个figure都有(而且仅有)一个colormap,翻 译过来就是色图。 • COLORMAP(MAP) 用MAP矩阵映射当前图形的色图。 • COLORMAP('default') 默认的设置是 JET. • MAP = COLORMAP 获得当前色图矩阵. • COLORMAP(AX,...) 应用色图到AX坐标对应的图形,而非当 前图形. • MAP实际上是一个mx3的矩阵,每一行的3个值都为0-1之 间数,分别代表颜色组成的rgb值,[1 0 0] 代表红色,[0 1 0]代表绿色,[0 0 1]代表蓝色。系统自带了一些colormap, 如:winter、autumn等。输入winter,就可以看到它是一 个64x3的矩阵。用户可以自定义自己的colormap,而且不 一定是64维的。
6.imsubstract
• 功能:图像间减操作或从图像中减去常量 • 用法:Z = imsubtract(X,Y) • 将矩阵X,Y中对应的元素值做差,差值返 回到矩阵Z中。X,Y是具有相同大小和相同 类型的非稀疏实数矩阵,或者Y是一个 double型的纯量。返回矩阵Z和X大小和类型 相同,除非X为逻辑矩阵,此时Z为double型。 如果X是整型矩阵,那么超出整型数据范围 的数据将被舍弃。
• • • • • • •
11.imcomplement
• 可以对图像数据进行取反运算(实现底片效果) • 调用格式: IM2 = imcomplement(IM) • 参数说明: IM是源图像的数据, IM2是取反后 的图像数据。 • >> I = imread('plane.bmp'); • >> subplot(121); • >> imshow(I); • >> J=imcomplement(I); • >> subplot(122); • >> imsho• • • • • • • •
例如: >> plane=imread('plane.bmp'); >> I=double(plane); >> J=I*0.43+90; >> K=I*0.1+90; >> L=I*0.01+90; >> plane2=uint8(J); >> plane3=uint8(K); >> plane4=uint8(L); >> J=imdivide(plane,plane2); >> K=imdivide(plane,plane3); >> L=imdivide(plane,plane4); >> subplot(1,4,1),imshow(plane); >> subplot(1,4,2),imshow(J,[]); >> subplot(1,4,3),imshow(K,[]); >> subplot(1,4,4),imshow(L,[]);
1.imagesc
• imagesc是软件Matlab中的一个函数。 • >>imagesc(A)将矩阵A中的元素数值按大小转 化为不同颜色,并在坐标轴对应位置处以这 种颜色染色。 • 例如:Imagesc(1:8); • >>imagesc(x,y,A) x, y分别为二维向量,Matlab 会在[x1,x2]*[y1,y2]范围内染色。
2.colormap
3.subplot
• subplot是MATLAB中的函数。 • 使用方法:subplot(m,n,p)或者subplot (m n p)。 • subplot是将多个图画到一个平面上的工具。 其中,m表示是图排成m行,n表示图排成n 列,也就是整个figure中有n个图是排成一行 的,一共m行,如果m=2就是表示2行图。p 表示图所在的位置,p=1表示从左到右从上 到下的第一个位置。
4.imshow
• imshow(I,n) • imshow(I,[low high]) • 用指定的灰度范围 [low high]显示灰度图像I。 显示结果,图像中灰度值等于或低于low的都 将用黑色显示,而灰度值大于等于high的都显 示为白色,介于low和high之间的用其灰度级 的默认值的中间色调显示。如果你用了一个空 矩阵([]) 来代替 [low high], imshow 函数将使 用 [min(I(:))max(I(:))]作为第二个参数。
8.imdivide
• Z=imdivide(X,Y)将矩阵X中每一个元素除以矩 阵Y中对应元素,返回值为X和Y具有相同的 维数或数据类型,或者Y是一个数值型常量。 Z的维数或数据类型与X相同。如果X和Y为 整型矩阵,运算的结果可能超出图像数据 类型所支持的范围,这时MATLAB自动将数 据截断为数据类型所支持的范围内。
14.取整函数
(1)fix(x) : 截尾取整
>> fix( [3.12 -3.12]) ans = 3 -3
(3)ceil(x) : 大于x 的最小整数 >> ceil( [3.12 -3.12])
ans = 4 -3 (4)四舍五入取整 >> round([3.12 -3.12]) ans = 3 -3
(2)floor(x):不超过x 的最大 整数.(高斯取整) >> floor( [3.12 -3.12])
ans = 3 -4
例如: >> bright=ones(256,256); >> bright(64:192,64:192)=0.5; >> imshow(bright);
5.imadjust
• J = imadjust(I) • 将灰度图像 I 中的亮度值映射到 J 中的新值,使得图像中 1% 的 数据饱和至最低和最高亮度,这可以增加输出图像 J 的对比度 值。此用法相当于 imadjust(I,stretchlim(I)) • J = imadjust(I,[low_in; high_in],[low_out; high_out]) • 将图像I中的亮度值映射到J中的新值,即将low_in至high_in之间 的值映射到low_out至high_out之间的值。low_in 以下与 high_in 以上的值被剪切掉了,也就是说,low_in 以下的值映射到 low_out,high_in 以上的值映射到high_out。它们都可以使用空 的矩阵[],默认值是[0 1]。 • J = imadjust(I,[low_in; high_in],[low_out; high_out],gamma) • 将图像 I 中的亮度值映射到 J 中的新值,其中 gamma指定描述 值I和值J关系的曲线形状。如果gamma小于1,此映射偏重更高 数值(明亮)输出,如果gamma大于1,此映射偏重更低数值 (灰暗)输出,如果省略此参数,默认为(线性映射)。
12.histeq
• 功能:直方图均衡化。 用法: J = histeq(I,hgram) 将原始图像I的直方图变成用户指定的向量hgram。 hgram中的各元素的值域为[0,1]。 J = histeq(I,n) 指定直方图均衡后的灰度级数n,默认值为64。 [J,T] = histeq(I,...) 返回从能将图像I的灰度直方图变换成图像J的直方图 变换T。 newmap = histeq(X,map,hgram) newmap = histeq(X,map) [newmap,T] = histeq(X,...) 这三个是针对索引图像调色板的直方图均衡化,用法和灰度图像的一 样。 举例: >> I = imread('plane.bmp'); >> subplot(121); >> imshow(I); >> J = histeq(I); >> subplot(122); >> imshow(J);
7.immultiply
• · Z=immultiply(X,Y)将矩阵X中每一个元素乘以矩 阵Y中对应元素,返回值为Z。如果X和Y的维数 或数据类型相同,则Z与X和Y也具有相同的维 数或数据类型;如果X为一个数值型矩阵而Y为 一个整型变量,则Z的维数或数据类型与X相同: 如果X为逻辑型而Y为整型,则Z的维数或数据 类型与Y相同:如果Y为逻辑型而X为整型,则Z 的维数或数据类型与X相同。如果X为整垫矩阵, 运算的结果可能超出图像数据类型所支持的范 围,这时.MATLAB自动将数据截断为数据类型 所支持的范围内。
相关文档
最新文档