数字图像灰度图像二值化实验报告matlab实现
matlab图像处理实验报告
![matlab图像处理实验报告](https://img.taocdn.com/s3/m/4fecc34ebb1aa8114431b90d6c85ec3a87c28b2d.png)
matlab图像处理实验报告《Matlab图像处理实验报告》摘要:本实验报告通过使用Matlab软件进行图像处理实验,对图像进行了灰度化、二值化、边缘检测、图像增强等处理,通过实验结果分析,验证了Matlab在图像处理领域的实用性和有效性。
1. 实验目的本实验旨在通过Matlab软件进行图像处理实验,掌握图像处理的基本方法和技术,提高对图像处理算法的理解和应用能力。
2. 实验原理图像处理是对图像进行数字化处理的过程,主要包括图像获取、图像预处理、图像增强、图像分割和图像识别等步骤。
Matlab是一种功能强大的科学计算软件,具有丰富的图像处理工具箱,可用于图像的处理、分析和识别。
3. 实验内容(1)图像灰度化首先,通过Matlab读取一幅彩色图像,并将其转换为灰度图像。
利用Matlab 中的rgb2gray函数,将RGB图像转换为灰度图像,实现图像的灰度化处理。
(2)图像二值化接着,对灰度图像进行二值化处理,将图像转换为黑白二值图像。
利用Matlab 中的im2bw函数,根据设定的阈值对灰度图像进行二值化处理,实现图像的二值化处理。
(3)边缘检测然后,对二值图像进行边缘检测处理,提取图像的边缘信息。
利用Matlab中的edge函数,对二值图像进行边缘检测处理,实现图像的边缘检测处理。
(4)图像增强最后,对原始图像进行图像增强处理,改善图像的质量和清晰度。
利用Matlab 中的imadjust函数,对原始图像进行图像增强处理,实现图像的增强处理。
4. 实验结果分析通过实验结果分析,可以发现Matlab在图像处理领域具有较高的实用性和有效性。
通过Matlab软件进行图像处理实验,可以快速、方便地实现图像的处理和分析,提高图像处理的效率和精度,为图像处理技术的研究和应用提供了重要的工具和支持。
5. 结论本实验通过Matlab图像处理实验,掌握了图像处理的基本方法和技术,提高了对图像处理算法的理解和应用能力。
数字图像灰度图像二值化实验报告matlab实现
![数字图像灰度图像二值化实验报告matlab实现](https://img.taocdn.com/s3/m/603a32db33d4b14e852468b9.png)
数字图像处理实验报告实验二灰度图像的二值化处理学号姓名日期实验二灰度图像的二值化处理一、实验目的图像二值化是数字图像处理技术中的一项基本技术,二值化图像的显示与打印十分方便,存储与传输也非常容易,在目标识别、图像分析、文本增强、字符识别等领域得到广泛应用。
图像二值化是将灰度图像转化为只有黑白两类像素的图像,大多采用阈值化算法处理。
在不同的应用中,阈值的选取决定着图像特征信息的保留。
因此,图像二值化技术的关键在于如何选取阈值。
二、实验内容1、编程绘制数字图像的直方图。
2、灰度图像二值化处理。
三、实验要求1、自己选择灰度图像。
2、选择多种阈值分割算法,并比较和分析图像二值化处理的结果。
3、使用VC++编程序。
四、设计思想(阈值选取算法)灰度图像是指只含亮度信息,不含色彩信息的图像,将彩色图像转化成为灰度图像的过程称为图像的灰度化处理。
图像的二值化处理就是将图像上的点的灰度置为0或255,也就是使整个图像呈现出明显的黑白效果。
即将256个亮度等级的灰度图像通过适当的阀值选取而获得仍然可以反映图像整体和局部特征的二值化图像。
阀值分割选取算法有:典型的全局阀值算法的Otsu 算法、局部阀值方法中的Bersen算法、灰度拉伸法、直方图方法等等。
1.Otsu算法的设计思想:设阀值将图像分割成两组,一组灰度对应目标,另一组灰度对应背景,则这两组灰度值的类内方差最小,两组的类间方差最大。
对图像设阈值将图像分割成两组,一组灰度对应目标,另一组灰度对应背景,则这两组灰度值的类内方差最小,两组的类间方差最大。
2.Bersen算法的设计思想:把灰度阈值选取为随像素位置变化而变化的函数,它是一种动态选择阈值的自适应方法。
3.灰度拉伸算法设计思想:灰度拉伸又叫对比度拉伸,它是最基本的一种灰度变换,使用的是最简单的分段线性变换函数,它的主要思想是提高图像处理时灰度级的动态范围。
4.直方图算法的设计思想:把原始图像的灰度直方图从比较集中的某个灰度区间变成在全部灰度范围内的均匀分布。
matlab简单图像处理实验报告
![matlab简单图像处理实验报告](https://img.taocdn.com/s3/m/ef01d887bceb19e8b8f6badc.png)
实验一:图像文件类型转换实验目的:理解数字图像文件的几种基本类型掌握在MATLAB中进行图象文件类型转换的方法观察图象转换前后的效果加深对图象文件类型的理解熟悉图象格式、颜色系统间的转换实验内容:1)灰度图像与索引图像的相互转换2)RGB图像与索引图像的相互转换3)将图像转换为二值化图像实验方法:利用MATLAB工具进行实验一、灰度图像到索引图像的转换clear>> info=imfinfo('rice.png')info =Filename: 'rice.png'FileModDate: '26-Jan-2003 00:03:06'FileSize: 44607Format: 'png'FormatVersion: []Width: 256Height: 256BitDepth: 8ColorType: 'grayscale'FormatSignature: [137 80 78 71 13 10 26 10]Colormap: []Histogram: []InterlaceType: 'none'Transparency: 'none'SimpleTransparencyData: []BackgroundColor: []RenderingIntent: []Chromaticities: []Gamma: []XResolution: []YResolution: []ResolutionUnit: []XOffset: []YOffset: []OffsetUnit: []SignificantBits: []ImageModTime: '27 Dec 2002 19:57:12 +0000'Title: []Author: []Description: 'Rice grains'Copyright: 'Copyright The MathWorks, Inc.'CreationTime: []Software: []Disclaimer: []Warning: []Source: []Comment: []OtherText: []RGB=imread('rice.png');>> figure(3);>> imshow(RGB);>> figure(1);>> [RGB1,map1]=gray2ind(RGB,128);>> imshow(RGB1,map1);>> figure(2);>> [RGB2,map2]=gray2ind(RGB,16);>> imshow(RGB2,map2);>> imwrite(RGB1,map1,'3.bmp');>> imwrite(RGB2,map2,'4.bmp');图3 图1图2实验结果分析:从上述实验结果,我们可以看出灰度级不同,图像的亮度也不一样。
数字图像处理实验程序MATLAB
![数字图像处理实验程序MATLAB](https://img.taocdn.com/s3/m/ac7c2011b307e87101f696b7.png)
实验一内容(一)(1)彩色图像变灰度图像A=imread('1.jpg');B=rgb2gray(A);figuresubplot(1,2,1),imshow(A)title('原图')subplot(1,2,2),imshow(B)title('原图灰度图像')(2)彩色图像变索引图像A=imread('1.jpg');figuresubplot(1,2,1),imshow(A)title('原图')[X,map]=rgb2ind(A,128);subplot(1,2,2),imshow(X,map)title('原图索引图像')(3)彩色图像变二值图像A=imread('1.jpg');figuresubplot(1,2,1),imshow(A)title('原图')C=im2bw(A,0.2);subplot(1,2,2),imshow(C)title('原图二值图像')(4)灰度图像变索引图像(一)A=imread('1.jpg');figureB=rgb2gray(A);subplot(1,2,1),imshow(B)title('灰度图像')C=grayslice(B,39);subplot(1,2,2),imshow(C)title('灰度变索引图像')(5)灰度图像变索引图像(二)A=imread('1.jpg');figureB=rgb2gray(A);subplot(1,2,1),imshow(B)title('灰度图像')[X,map]=gray2ind(B,63);subplot(1,2,2),imshow(X,map)title('灰度变索引图像')(6)灰度图像变彩色图像A=imread('1.jpg');figureB=rgb2gray(A);subplot(1,2,1),imshow(B)title('灰度图像')C=gray2rgb(B,map);subplot(1,2,2),imshow(C)title('灰度变彩色图像')内容(二)(1)灰度平均值A=imread('1.jpg');figureB=rgb2gray(A);subplot(1,2,1),imshow(B)title('灰度图像')B=double(B);[m,n]=size(B);sumg=0.0;for i=1:m;for j=1:n;sumg=sumg+B(i,j);endendavg=sumg/(m*n) % 均值maxg=max(max(B)) % 区域最大灰度ming=min(min(B)) % 区域最小灰度(2)彩色平均值figureimshow(A)title('彩色图像')A=double(A);[m,n]=size(A);sumg=0.0;for i=1:m;for j=1:n;sumg=sumg+A(i,j);endendavg=sumg/(m*n)squre=m*nmaxg=max(max(A))ming=min(min(A))内容(三)采样量化实验二图像变换傅里叶变换、反变换、I=imread('19.jpg');A=rgb2gray(I);x1=fft2(A);x2=fftshift(x1);x3=ifft(x1)/10;figure,subplot(1,4,1);imshow(A)title('原图');subplot(1,4,2);imshow(x1)title('频谱图');subplot(1,4,3);imshow(log(abs(x2)+1),[0 10]);title('直流分量移至频谱图中心');subplot(1,4,4);imshow(x3,[0 10])title('傅里叶反变换');DCT变换、反变换I=rgb2gray(X);subplot(1,3,1);imshow(I);title('原图');subplot(1,3,2);J=dct2(I);imshow(log(abs(J)),[0 20]);title('二维离散余弦变换');subplot(1,3,3);K=idct2(J)/20;imshow(K,[0 20]);title('二维离散反余弦变换');利用DCT变换压缩图像I=imread('19.jpg');A=rgb2gray(I);B=DCT2(A);B(abs(B)<0.1)=0;C=idct2(B)/255;figure,subplot(1,3,1);imshow(A);title('原图');subplot(1,3,2);imshow(B);title('二维离散余弦变换频谱图');subplot(1,3,3);imshow(C);title('压缩后图像');实验三图像增强(一)灰度图像增强(1)线性变换法clc;clear all;I=imread('19.jpg');A=rgb2gray(I);colormap;imshow(A);%设置图像倒数参数j=imadjust(A,[0 1],[1 0],1.5);figure;subimage(j)(2)灰度图像的非线性变换(之对数)I=imread('19.jpg');colormapimshow(I)J=double(I);J=45*log(J+1);I=uint8(J);figure,subimage(J)(二)直方图校正直方图均衡I=imread('19.jpg');B=rgb2gray(I);imshow(B,[40 255]);figure,imhist(B)title('直方图')J=imadjust(B,[0.15 0.9],[0 1]); figure,imhist(B,64)title('均衡直方图')滤波I=imread('19.jpg');figure,B=rgb2gray(I);C=imnoise(B,'salt & pepper',0.02);D=imfilter(B,fspecial('average',3)); E=medfilt2(B);subplot(1,3,2)imshow(D)title('均值滤波')subplot(1,3,3)imshow(D)title('中值滤波')subplot(1,3,1)imshow(C)title('加入椒盐噪声图像')锐化处理I=imread('19.jpg');A=rgb2gray(I);figure,subplot(2,3,1),imshow(A);title('原图');hs=fspecial('sobel');S=imfilter(A,hs);hp=fspecial('prewitt');P=imfilter(A,hs);A=double(A);%双精度型H=[0 1 0,1 -4 1,0 1 0];%拉普拉斯算子J=conv2(A,H,'same');K=A-J;subplot(2,3,2),imshow(K);title('拉普拉斯锐化图像');B=edge(A,'roberts',0.1);subplot(2,3,3),imshow(B);title('罗伯特锐化图像');subplot(2,3,4),imshow(S);title('sobel算子锐化图像');subplot(2,3,5),imshow(P);title('prewitt算子锐化图像');实验四放缩A=imread('19.jpg');imshow(A);title('原图')B=imresize(A,2)figure,imshow(B);title('二倍图')C=imresize(A,0.5)figureimshow(C)title('二分之一图')旋转A=imread('19.jpg');figuresubplot(1,4,1),imshow(A);title('原图像')B=imrotate(A,30,'nearest');subplot(1,4,2),imshow(uint8(B));title('旋转30度图像')C=imrotate(A,45,'nearest');subplot(1,4,3),imshow(uint8(C));title('旋转45度图像')D=imrotate(A,60,'nearest');subplot(1,4,4),imshow(uint8(D));title('旋转60度图像')镜像A1=imread('19.jpg');A1=double(A1);Figure,subplot(1,4,1),imshow(uint8(A1));H=size(A1);title('原像')A2(1:H(1),1:H(2),1:H(3))=A1(H(1):-1:1,1:H(2),1:H(3));%垂直镜像subplot(1,4,2),imshow(uint8(A2));title('垂直镜像')A3(1:H(1),1:H(2),1:H(3))=A1(1:H(1),H(2):-1:1,1:H(3));%水平镜像subplot(1,4,3),imshow(uint8(A3));title('水平镜像')A4(1:H(1),1:H(2),1:H(3))=A1(H(1):-1:1,H(2):-1:1,1:H(3));%对角镜像subplot(1,4,4),imshow(uint8(A4));title('对角镜像')剪切A1=imread('19.jpg');A2=imcrop(A1,[75 68 100 110]);figuresubplot(1,2,1),imshow(A1);title('原像')subplot(1,2,2),imshow(A2);title('剪切后像')实验五阈值分割A=imread('19.jpg');figuresubplot(1,4,1),imshow(A);title('原图像')B=im2bw(A,91/255);subplot(1,4,2),imshow(B);title('阈值91的图像')C=im2bw(A,71/255);subplot(1,4,3),imshow(C);title('阈值71的图像')D=im2bw(A,140/255);subplot(1,4,4),imshow(D);title('阈值140的图像')边缘检测I=imread('19.jpg');A=rgb2gray(I);figuresubplot(1,4,1),imshow(A);title('原图像')B=edge(A,'sobel',0.1);%edge边缘检测函数subplot(1,4,2),imshow(B);title('sobel算子检测')C=edge(A,'roberts',0.1);%0.1为门限subplot(1,4,3),imshow(C);title('roberts算子检测')D=edge(A,'prewitt',0.1);subplot(1,4,4),imshow(D);title('prewitt算子检测')所谓数字图像处理[7]就是利用计算机对图像信息进行加工以满足人的视觉心理或者应用需求的行为。
matlab数字图像处理实验报告
![matlab数字图像处理实验报告](https://img.taocdn.com/s3/m/ca98b9bebed5b9f3f80f1c45.png)
3基于卷积的图像滤波函数
imfilter函数,filter2函数,二维卷积conv2滤波,都可用于图像滤波, 用法类似,如:
i=imread('e:\w01.tif');
j=filter2(h,i);
或者:
h=fspecial(‘prewitt')
3、对一幅图像进行灰度变化,实现图像变亮、变暗和负片效果,在同一个 窗口内分成四个子窗口来分别显示,注上文字标题。
a=imread('f:\1.jpg');
m=imadjust(a,[,],[0.5;1]);%图像变亮n=imadjust(a,[,],[0;0.5]);%图像变暗g=255-a;%负片效果subplot(2,2,1);imshow(a);title('原图像') subplot(2,2,2);imshow(m);title('图像变亮') subplot(2,2,3);imshow(n);title('图像变暗') subplot(2,2,4);imshow(g);title('负片效果')
图像类型转换1rgb2gray把真彩图像转换为灰度图像irgb2grayj2im2bw通过阈值化方法把图像转换为二值图像iim2bwjlevellevel表示灰度阈值取值范围01即0n表示阈值取自原图像灰度范3imresize改变图像的大小iimresizejmn将图像j大小调整为m行n列图像运算1imadd两幅图像相加要求同样大小同种数据类型zimaddxy表示图像xy2imsubstract两幅图像相减要求同样大小同种数据类型zimsubtractxy3immultiplyzimmultiplyxy4imdivide表示图像xy表示图像xyzimdividexy表示图像xy四实验内容请将实验程序填写在下方合适的位置实验图像结果拷屏粘贴1读入一幅rgb图像变换为灰度图像和二值图像并在同一个窗口内分成三个子窗口来分别显示rgb图像和灰度图像注上文字标题
数字图像处理实验报告
![数字图像处理实验报告](https://img.taocdn.com/s3/m/013864b31a37f111f1855b5b.png)
数字图像处理实验报告一、应用MATLAB语言编写显示一幅灰度图像、二值图像、索引图像及彩色图像的程序,并进行相互之间的转换;1、灰度图像I转换成索引图像X,二值图像A,并显示I=imread('E:\mao2.bmp');[X,map]=gray2ind(I,144); %指定灰度级为144,转换成索引图像A=im2bw(I); %转换成二值图像Asubplot(131);imshow(I); title('原始图像'); %显示图像subplot(132);imshow(X); title('索引图像')subplot(133);imshow(A) ;title('二值图像')2、彩图B分别转换为灰度图像I,索引图像X,二值图像A,并显示B=imread('E:\mao1.bmp');I=rgb2gray(B);[X,map]=rgb2ind(B);A=im2bw(B);subplot(141);imshow(B); title('原始图像');subplot(142);imshow(I); title('灰度图像');subplot(143);imshow(X); title('索引图像');subplot(144);imshow(A);title('二值图像');3、索引图像X转换成灰度图像I和二值图像A,并显示I=imread('E:\mao1.bmp');[X,map]=gray2ind(I,144); %将读入的灰度图像转换成索引图像H=ind2gray(X,map); %索引图像到灰度图像A=im2bw(X); %索引图像到二值图像subplot(131);imshow(X); title('索引图像'); %显示图像subplot(132);imshow(H); title('灰度图像');subplot(133);imshow(A) ;title('二值图像')二、应用MATLAB工具箱演示一幅图像的傅里叶变换、离散余弦变换,观察其频谱图。
图像分析MATLAB实现的图像的基本操作1灰度化、二值化,图像的加、减、乘、除运算,图像的与、或、非
![图像分析MATLAB实现的图像的基本操作1灰度化、二值化,图像的加、减、乘、除运算,图像的与、或、非](https://img.taocdn.com/s3/m/d788f6e4b90d6c85ed3ac66a.png)
大学生作业科目:数字图像分析与理解学号:姓名:时间:通过matlab对图像的一些基本操作如下:定义move函数代码:function J = move( I,a,b )%UNTITLED 此处显示有关此函数的摘要% 此处显示详细说明%a,b为平移量,I为原图像,J为平移后图像[M,N,G]=size(I);I=im2double(I);J=ones(M,N,G);for i=1:Mfor j=1:Nif((i+a)>=1&&(i+a)<=M&&(j+b)>=1&&(j+b)<=N) %判断平移后行列是否超过范围J(i+a,j+b,:)=I(i,j,:);endendend主函数代码:A=imread('happyC.jpg');B=imread('happyI.jpg');C=imread('happyP.jpg');imshow(A);A_gray=rgb2gray(A);A_bw=im2bw(A);B_bw=im2bw(B);C_bw=rgb2gray(C);figure,imshow(A_gray);figure,imshow(A_bw)addP=imadd(A,B);subP=imsubtract(A,B);mulP=immultiply(A,B);divP=imdivide(A,B);andP=A_bw&B_bw;orP=A_bw|B_bw;noP=~B_bw;R=2;% 变化后图像[row,col,color] = size(C); % 获得图像的行列数及色板数row = round(row*R); % 新图像行col = round(col*R); % 新图像列% 新图像初始化% 使用class获得原图像的数据类型,使得新图像数据类型与原图像保持一致img_new = zeros(row,col,color,class(C));% 对新图像的行、列、色板赋值for i = 1:rowfor j = 1:colfor n = 1:colorx = round(i/R);y = round(j/R);if x == 0x = x+1;endif y ==0y = y+1;endu = i/R-floor(i/R); %求取水平方向上的权重v = j/R-floor(j/R); %求取垂直方向上的权重% 此处需要对图像边缘进行例外处理% 本例对图像右边缘及下边缘用最近邻插值计算if i >= row-R || j >= col-Rimg_new(i,j,n) = C(x,y,n);elseimg_new(i,j,n) =u*v*C(x,y,n)+(1-u)*v*C(x+1,y,n)+u*(1-v)*C(x,y+1,n)+(1-u)*(1-v)*C(x+1,y+ 1,n);endendendendfigure,imshow(B);figure;subplot(2,2,1);imshow(addP);title('加法');subplot(2,2,2);imshow(subP);title('减法');subplot(2,2,3);imshow(mulP);title('乘法');subplot(2,2,4);imshow(divP);title('除法');C_mov=move(C,50,50);C_res=imresize(C,2,'bilinear');C_rot=imrotate(C,45,'loose');C_mir1=flip(C,1);%原图像的水平镜像C_mir2=flip(C,2);%原图像的垂直镜像figure;subplot(1,3,1);imshow(andP);title('与运算'); subplot(1,3,2);imshow(orP);title('或运算');subplot(1,3,3);imshow(noP);title('非运算');figure;subplot(121);imshow(C);title('原图');subplot(122);imshow(C_mov);title('平移后'); figure;%subplot(121);imshow(C);title('原图');%subplot(122);figure;imshow(C_res);title('放大后');figure;subplot(121);imshow(C);title('原图');subplot(122);imshow(C_rot);title('旋转后'); figure;subplot(131);imshow(C);title('原图');subplot(132);imshow(C_mir1);title('水平镜像后'); subplot(133);imshow(C_mir2);title('垂直镜像后'); figure;%subplot(121);imshow(C);title('原图');%subplot(122);figure;imshow(img_new);title('插值后');基本操作图像如下:。
matlab灰度处理二值化处理
![matlab灰度处理二值化处理](https://img.taocdn.com/s3/m/ee4d54b09f3143323968011ca300a6c30c22f1d3.png)
Matlab在图像处理领域有着广泛的应用,其中灰度处理和二值化处理是常见的图像处理方法之一。
本文将详细介绍Matlab中的灰度处理和二值化处理的原理和实现方法。
一、灰度处理1. 灰度图像的概念灰度图像是指图像中每个像素的灰度值介于0-255之间的图像。
在灰度图像中,0代表黑色,255代表白色,中间的灰度值代表了不同程度的灰色。
2. 灰度处理的原理灰度处理是将彩色图像转换为灰度图像的过程。
在Matlab中,可以通过以下公式实现灰度处理:灰度值 = 0.299 * R + 0.587 * G + 0.114 * B其中,R、G、B分别代表彩色图像中的红色、绿色和蓝色分量。
通过对每个像素的RGB分量进行加权求和,可以得到对应的灰度值。
3. 灰度处理的实现在Matlab中,可以使用`rgb2gray`函数实现灰度处理。
具体的代码如下:```matlab读取彩色图像rgbImage = imread('example.jpg');灰度处理grayImage = rgb2gray(rgbImage);显示灰度图像imshow(grayImage);```二、二值化处理1. 二值化图像的概念二值化图像是指将灰度图像中的像素值转换为0或255的图像。
在二值化图像中,像素值为0代表黑色,像素值为255代表白色。
2. 二值化处理的原理二值化处理的目的是将灰度图像中的灰度值转换为0或255。
一般可以通过设置一个阈值,将低于阈值的像素值设为0,将高于阈值的像素值设为255。
3. 二值化处理的实现在Matlab中,可以使用`im2bw`函数实现二值化处理。
具体的代码如下:```matlab读取灰度图像grayImage = imread('example_gray.jpg');设置阈值threshold = 128;二值化处理binaryImage = im2bw(grayImage, threshold/255);显示二值化图像imshow(binaryImage);```三、总结本文详细介绍了Matlab中灰度处理和二值化处理的原理和实现方法。
数字图像实验报告二图像的灰度变换与直方图均衡
![数字图像实验报告二图像的灰度变换与直方图均衡](https://img.taocdn.com/s3/m/38f36b254b73f242336c5f9e.png)
实验二图像的灰度变换与直方图均衡一、实验目的1.理解图像灰度变换与直方图均衡的定义;2.掌握图像灰度变换与直方图均衡化的方法;3.学会利用matlab编程实现灰度变换和直方图均衡的方法。
二、实验内容1. 利用matlab语言直接编程实现图像的对比度调整;2. 利用matlab语言编程实现图像的反转;3. 利用matlab语言直接编程实现图像的二值化;4. 利用matlab语言直接编程实现图像的直方图均衡化处理。
三、实验步骤(一)利用matlab语言直接编程实现图像的对比度调整实验代码如下:A=imread('E:\实验报告\数字图像处理实验报告\数字图像实验报告二通信五班韩奇20110803520\lena.jpg');I=double(A);J=I*0.5+40;A1=uint8(J);figure(1);subplot(1,2,1),imshow(A);subplot(1,2,2),imshow(A1);J=I*1+40;A1=uint8(J);figure(2);subplot(1,2,1),imshow(A);subplot(1,2,2),imshow(A1);J=I*3+40;A1=uint8(J);figure(3);subplot(1,2,1),imshow(A);subplot(1,2,2),imshow(A1);J=exp(I);A1=uint8(J);figure(4);subplot(1,2,1),imshow(A);subplot(1,2,2),imshow(A1); 生成图像如下:从图中可以看出,第一幅图相对于原图的对比度降低了,第二幅图相对于原图对比度提高了40个灰度级,第三幅图对比度提高太多,效果反而不好。
在三幅图中,第二幅图视觉效果最好,对比度明显又不至于太亮。
第四幅图是指数灰度变换。
(二)利用matlab语言编程实现图像的反转实验代码如下:A=imread('E:\实验报告\数字图像处理实验报告\数字图像实验报告二通信五班韩奇20110803520\lena.jpg');E=imadjust(A,[0.35 0.65],[1 0]);figure;imshow(E);生成图像如下:从图中可以看出,原来亮的部分经过反转之后变暗,暗的部分经过反转变亮。
数字图像处理实验报告(五个实验全)
![数字图像处理实验报告(五个实验全)](https://img.taocdn.com/s3/m/a29ea29782d049649b6648d7c1c708a1284a0af0.png)
数字图像处理实验报告(五个实验全)实验⼀ Matlab图像⼯具的使⽤1、读图I=imread('lena.jpg');imshow(I);2、读⼊⼀幅RGB图像,变换为灰度图像和⼆值图像,并在同⼀个窗⼝内分成三个⼦窗⼝来分别显⽰RGB图像和灰度图像。
a=imread('lena.jpg')i = rgb2gray(a)I = im2bw(a,0.5)subplot(3,1,1);imshow(a);subplot(3,1,2);imshow(i);subplot(3,1,3);imshow(I);原图像灰度图像⼆值图像实验⼆图像变换1、对⼀幅图像进⾏平移,显⽰原始图像与处理后图像,分别对其进⾏傅⾥叶变换,显⽰变换后结果,分析原图的傅⾥叶谱与平移后傅⾥叶频谱的对应关系。
s=imread('beauty.jpg');i=rgb2gray(s)i=double(i)j=fft2(i);k=fftshift(j); 原图像原图的傅⾥叶频谱l=log(abs(k));m=fftshift(j);RR=real(m);II=imag(m);A=sqrt(RR.^2+II.^2);A=(A-min(min(A)))/(max(max(A)))*255;b=circshift(s,[800 450]);b=rgb2gray(b)b=double(b) 平移后的图像平移后的傅⾥叶频谱c=fft2(b);e=fftshift(c);l=log(abs(e));f=fftshift(c);WW=real(f);ZZ=imag(f);B=sqrt(WW.^2+ZZ.^2);B=(B-min(min(B)))/(max(max(B)))*255;subplot(2,2,1);imshow(s);subplot(2,2,2);imshow(uint8(b));subplot(2,2,3);imshow(A);subplot(2,2,4);imshow(B);2、对⼀幅图像进⾏旋转,显⽰原始图像与处理后图像,分别对其进⾏傅⾥叶变换,显⽰变换后结果,分析原图的傅⾥叶谱与旋转后傅⾥叶频谱的对应关系。
图像灰度化处理 matlab 实验报告
![图像灰度化处理 matlab 实验报告](https://img.taocdn.com/s3/m/fab7f4b6fd0a79563c1e7284.png)
X x通大学数字图像处理与通信课程实验报告班级:实验项目名称:图像灰度化处理实验项目性质:设计性实验实验所属课程:数字图像处理与图像通信实验室(中心):网络实验中心指导教师:实验完成时间: 2012 年 10 月 16 日教师评阅意见:签名:年月日实验成绩:一、实验目的:首先通过实验熟悉matlab、matlab 编程环境以及其基本操作,和对图像的读取、显示、保存等一些操作,增加自己的实际动手能力。
二、实验主要内容及要求:1.熟悉matlab或者C#的编程环境,完成在相关环境下图像的读入、显示、保存等操作;2.完成图像的灰度化处理。
三、实验设备及软件:PC机一台,MATBLAB。
四、设计方案五、主要代码及必要说明f=imread('28.jpg');%读取图像figure(1);imshow(f); %显示图像[n m a]=size(f);%判断图像的大小for x=1:n %通过双循环对图像进行灰度化处理for y=1:mp(x,y)=0.3*f(x,y,1)+0.59*f(x,y,2)+0.11*f(x,y,3);endendfigure(2);imshow(p);%显示处理后的图像imwrite(p,'abc.jpg'); %保存处理后的图像六、测试结果及说明:(1)实验原图:(2)实验结果:七、实验体会:首先通过本次实验,自己对matlab这款软件的基本操作了解同时也学会了对图像的一些基本操作,比如图像的读取、保存、修改,灰度化处理等等一些操作,与此同时学会了在调试的过程当中要注意细节,因为自己对彩色图像处理所以注意是三位数组,以及循环的时候注意结束语语句,实验也增加了自己实际动手能力。
数字图像处理实验报告
![数字图像处理实验报告](https://img.taocdn.com/s3/m/1c75ed2591c69ec3d5bbfd0a79563c1ec5dad7b8.png)
数字图像处理实验报告实验一数字图像的获取一、实验目的1、了解图像的实际获取过程。
2、巩固图像空间分辨率和灰度级分辨率、邻域等重要概念。
3、熟练掌握图像读、写、显示、类型转换等matlab函数的用法。
二、实验内容1、读取一幅彩色图像,将该彩色图像转化为灰度图像,再将灰度图像转化为索引图像并显示所有图像。
2、编程实现空间分辨率变化的效果。
三、实验原理1、图像读、写、显示I=imread(‘image.jpg’)Imview(I)Imshow(I)Imwrite(I,’wodeimage.jpg’)2、图像类型转换I=mat2gray(A,[amin,amax]);按指定的取值区间[amin,amax]将数据矩阵A转化为灰度图像I,amin对应灰度0,amax对应1,也可以不指定该区间。
[x,map]=gray2ind(I,n);按指定的灰度级n将灰度图像转化为索引图像,n默认为64I=ind2gray(x,map);索引图像转化为灰度图像I=grb2gray(RGB);真彩色图像转化为灰度图像[x,map]=rgb2ind(RGB);真彩色图像转化为索引图像RGB=ind2rgb(x,map);索引图像转化为真彩色图像BW=im2bw(I,level);将灰度图像转化为二值图像,level取值在[0,1]之间BW=im2bw(x,map,level);将索引图像转化为二值图像,level取值在[0,1]之间BW=im2bw(RGB,level);将真彩色图像转化为二值图像,level取值在[0,1]之间四、实验代码及结果1、in=imread('peppers.png');i=rgb2gray(in);[x,map]=gray2ind(i,128);subplot(131),imshow(in)subplot(132),imshow(i)subplot(133),imshow(x),colormap(map)2、%空间分辨率变化的效果clc,close all,cleari=imread('cameraman.tif');i=imresize(i,[256,256]);i1=i(1:2:end,1:2:end);[m1,n1]=size(i)i2=i1(1:2:end,1:2:end);[m2,n2]=size(i2)i3=i2(1:2:end,1:2:end);[m3,n3]=size(i3)subplot(221),imshow(i),xlabel('256x256')subplot(222),imshow(i1),xlabel('128x128')subplot(223),imshow(i2),xlabel('64x64')subplot(224),imshow(i3),xlabel('32x32')256 x 256128 x 12864 x 6432 x 32实验二图像的几何变换一、实验目的掌握图像的基本几何变换的方法1、图像的平移2、图像的旋转二、实验内容练习用matalb 命令实现图像的平移、旋转操作1、.编写实现图像平移的函数2、用imread 命令从你的硬盘读取一幅256×256灰度图;3、调用平移函数,将256×256灰度图平移100行200列,在同一个窗口中显示平移前和平移后的图像。
实验2b 图像的灰度变换
![实验2b 图像的灰度变换](https://img.taocdn.com/s3/m/020cac3510661ed9ad51f323.png)
实验2b 图像的灰度变换一、实验目的:学会用Matlab软件对图像进行运算和灰度变换。
二、实验内容:用+、-、*、/、imabsdiff、imadd、imcomplment、imdivide、imlincomb、immultiply、imsubtract和imadjust等函数生成各类灰度变换图像。
三、实验报告要求:写出每步处理的命令,并提交原图像和处理后的图像。
四、实验相关知识1、代数运算两幅图像之间进行点对点的加、减、乘、除运算后得到输出图像。
我们可以分别使用MATLAB的基本算术符+、-、*、/来执行图像的算术操作,但是在此之前必须将图像转换为适合进行基本操作的双精度类型(命令函数为double())。
为了更方便对图像进行操作,图像处理工具箱中也包含了一个能够实现所有非稀疏数值数据的算术操作的函数集合。
如下所示:imabsdiff:计算两幅图像的绝对差值imadd:两个图像的加法imcomplment:一个图像的补imdivide:两个图像的除法imlincomb:计算两幅图像的线性组合immultiply:两个图像的乘法imsubtract:两个图像的减法使用图像处理工具箱中的图像代数运算函数无需再进行数据类型间的转换,这些函数能够接受uint8和uint16数据,并返回相同格式的图像结果。
代数运算的结果很容易超出数据类型允许的范围。
图像的代数运算函数使用以下截取规则使运算结果符合数据范围的要求:超出数据范围的整型数据将被截取为数据范围的极值,分数结果将被四舍五入。
2、灰度变换点运算也称为灰度变换,是一种通过对图像中的每个像素值进行运算,从而改善图像显示效果的操作。
五、实验步骤:1、仔细阅读imabsdiff、imadd、imcomplment、imdivide、imlincomb、immultiply和imsubtract的帮助文件(help imabsdiff),并练习相关函数的使用。
数字图像处理实验报告(图像灰度变换处理)
![数字图像处理实验报告(图像灰度变换处理)](https://img.taocdn.com/s3/m/bebd54b8f90f76c661371ab6.png)
数字图像处理实验报告班级:姓名:学号:数字图像处理实验报告一.实验名称:图像灰度变换二.实验目的:1 学会使用Matlab;2 学会用Matlab软件对图像灰度进行变换,感受各种不同的灰度变换方法对最终图像效果的影响。
三.实验原理:Matlab中经常使用的一些图像处理函数:读取图像:img=imread('filename'); //支持TIFF,JPEG,GIF,BMP,PNG,XWD等文件格式。
显示图像:imshow(img,G); //G表示显示该图像的灰度级数,如省略则默认为256。
保存图片:imwrite(img,'filename'); //不支持GIF格式,其他与imread相同。
亮度变换:imadjust(img,[low_in,high_in],[low_out,high_out]); //将low_in至high_in之间的值映射到low_out至high_out之间,low_in 以下及high_in以上归零。
绘制直方图:imhist(img);直方图均衡化:histeq(img,newlevel); //newlevel表示输出图像指定的灰度级数。
像平滑与锐化(空间滤波):w=fspecial('type',parameters);imfilter(img,w); //这两个函数结合将变得十分强大,可以实现photoshop里的任意滤镜。
图像复原:deconvlucy(img,PSF); //可用于图像降噪、去模糊等处理。
四.实验步骤:1.获取实验用图像:Fig3.10(b).jpg. 使用imread函数将图像读入Matlab。
2.产生灰度变换函数T1,使得:0.3r r < 0.35s = 0.105+2.6333(r–0.35) 0.35 ≤ r ≤ 0.65 1+0.3(r–1) r > 0.65用T1对原图像Fig3.10(b).jpg进行处理,打印处理后的新图像。
数字图像处理实验报告
![数字图像处理实验报告](https://img.taocdn.com/s3/m/1d0fc08871fe910ef12df877.png)
序号(学号):*************实验报告书实验类别数字图像处理学院信息工程学院专业通信工程班级通信1005班姓名叶伟超指导教师聂明新2013 年 6 月 3 日四、实验内容选取两幅大小一样的图像,首先转换成灰度图像,然后对其中一幅进行旋转(旋转角度自定),再对两幅图像进行代数运算,并附上程序及处理前后的图像。
五、实验过程与结果A.(1)实验程序:I=imread('E:\RGB1.jpeg');%图像数据的读取,将图像数据放入矩阵A中,颜色数据放入矩阵M中K=rgb2gray(I)imshow(K);(2)原图:(3)转换成灰度图像(1)实验程序:I=imread('E:\feng2.jpg');%图像数据的读取,将图像数据放入矩阵A中,颜色数据放入矩阵M中J=rgb2gray(I);K=imrotate(J,60,'bilinear');imshow(K);(2)原图:(3)转换成灰度图像后旋转60度图)图像旋转之后,由于数字图像的坐标值必须是整数,因此,可能引起图像部分象素点的局部变化,因此,这时候,图像的大小也会发生一定的变化。
为了避免图像旋转之后可能产生的信息丢失,可以先进行平移,然后进行图像的旋转。
图像旋转后,可能会出现一些空一、实验目的(1)了解图像的各种变换方法(2)运用matlab实现各种变换二、实验原理图像变换是将图像从空间变换到变换域,变换的目的是简化图像的分析与处理。
图像变换在图像增强、图像恢复、图像压缩和图像特征提取等方面有着十分重要的应用,它是许多图像处理和分析技术的基础。
图像变换:傅立叶变换、离散余弦变换、沃尔什变换1、傅立叶变换二维离散傅立叶变换傅立叶频率谱离散傅立叶变换计算机处理傅立叶变换用离散傅立叶变换。
输入/输出数据均为离散,便于计算机处理。
使用离散傅立叶变换,可以使用一种快速算法(FFT)。
MATLAB提供的函数:FFT、FFT2、FFTn2、离散余弦变换傅立叶变换存在一个问题,它的参数均为复数,数据描述上相当于实数的两倍,数据的计算量比较大。
matlab实验报告实验二
![matlab实验报告实验二](https://img.taocdn.com/s3/m/e631f0b47d1cfad6195f312b3169a4517623e54d.png)
matlab实验报告实验二Matlab实验报告实验二引言Matlab是一种功能强大的数学软件,广泛应用于科学研究和工程实践中。
在实验二中,我们将探索Matlab的图像处理功能,并通过实际案例来展示其应用。
图像处理基础图像处理是指对图像进行数字化处理的过程,其目的是改善图像质量、提取有用信息或实现特定的应用需求。
在Matlab中,我们可以利用各种函数和工具箱来实现图像处理的各种任务,如图像增强、滤波、分割和特征提取等。
实验步骤1. 图像读取与显示在Matlab中,我们可以使用imread函数读取图像文件,并使用imshow函数将图像显示在屏幕上。
例如,我们可以读取一张名为"lena.jpg"的图像,并显示出来:```matlabimg = imread('lena.jpg');imshow(img);```2. 图像灰度化图像灰度化是将彩色图像转换为灰度图像的过程。
在Matlab中,我们可以使用rgb2gray函数将彩色图像转换为灰度图像。
例如,我们可以将上一步读取的图像转换为灰度图像:```matlabgray_img = rgb2gray(img);imshow(gray_img);```3. 图像二值化图像二值化是将灰度图像转换为二值图像的过程,其中只包含黑色和白色两种颜色。
在Matlab中,我们可以使用imbinarize函数将灰度图像二值化。
例如,我们可以将上一步得到的灰度图像二值化:```matlabbinary_img = imbinarize(gray_img);imshow(binary_img);```4. 图像平滑图像平滑是指去除图像中的噪声或细节,使得图像更加平滑和清晰。
在Matlab 中,我们可以使用imfilter函数对图像进行平滑处理。
例如,我们可以对上一步得到的二值图像进行平滑处理:```matlabsmooth_img = imfilter(binary_img, fspecial('average'));imshow(smooth_img);```5. 图像边缘检测图像边缘检测是指提取图像中物体边缘的过程,常用于目标检测和图像分割。
matlab 图像 实验报告
![matlab 图像 实验报告](https://img.taocdn.com/s3/m/dfac64878ad63186bceb19e8b8f67c1cfad6eefd.png)
matlab 图像实验报告Matlab图像实验报告引言:Matlab是一种强大的计算机编程语言和开发环境,广泛应用于科学计算、数据分析和图像处理等领域。
本实验报告旨在介绍基于Matlab的图像处理实验,包括图像读取、图像处理和图像显示等方面的内容。
一、图像读取图像读取是图像处理的第一步,通过读取图像可以获取图像的像素信息。
在Matlab中,可以使用imread函数来读取图像文件。
例如,通过以下代码可以读取一张名为"image.jpg"的图像:```matlabimage = imread('image.jpg');```二、图像处理1. 灰度化处理灰度化处理是将彩色图像转换为灰度图像的过程。
在Matlab中,可以使用rgb2gray函数来实现灰度化处理。
以下是一个简单的示例:```matlabgray_image = rgb2gray(image);```2. 图像增强图像增强是通过一系列的处理方法来改善图像的质量和视觉效果。
在Matlab中,有多种图像增强方法可供选择,如直方图均衡化、滤波和边缘检测等。
以下是一个直方图均衡化的示例:```matlabenhanced_image = histeq(gray_image);```3. 图像分割图像分割是将图像划分为若干个区域的过程,每个区域具有相似的特征。
在Matlab中,可以使用各种图像分割算法,如阈值分割和基于区域的分割。
以下是一个简单的阈值分割示例:```matlabthreshold = graythresh(enhanced_image);binary_image = imbinarize(enhanced_image, threshold);```三、图像显示图像显示是将处理后的图像展示给用户的过程。
在Matlab中,可以使用imshow函数来显示图像。
以下是一个简单的示例:```matlabimshow(binary_image);```四、实验结果与讨论本次实验中,我们选择了一张名为"image.jpg"的彩色图像进行处理。
数字图像处理实验报告
![数字图像处理实验报告](https://img.taocdn.com/s3/m/0aa93e0ff68a6529647d27284b73f242336c3107.png)
目录实验一:数字图像的基本处理操作 (2)1。
1:实验目的 (2)1。
2:实验任务和要求 (2)1.3:实验步骤和结果 (2)1。
4:结果分析 (6)实验二:图像的灰度变换和直方图变换 (7)2.1:实验目的 (7)2.2:实验任务和要求 (7)2。
3:实验步骤和结果 (7)2。
4:结果分析 (11)实验三:图像的平滑处理 (12)3.1:实验目的 (12)3。
2:实验任务和要求 (12)3。
3:实验步骤和结果 (12)3。
4:结果分析 (16)实验四:图像的锐化处理 (17)4.1:实验目的 (17)4.2:实验任务和要求 (17)4。
3:实验步骤和结果 (17)4.4:结果分析 (19)实验一:数字图像的基本处理操作1.1:实验目的1、熟悉并掌握MATLAB、PHOTOSHOP等工具的使用;2、实现图像的读取、显示、代数运算和简单变换。
3、熟悉及掌握图像的傅里叶变换原理及性质,实现图像的傅里叶变换。
1。
2:实验任务和要求1.读入一幅RGB图像,变换为灰度图像和二值图像,并在同一个窗口内分成三个子窗口来分别显示RGB图像和灰度图像,注上文字标题。
2.对两幅不同图像执行加、减、乘、除操作,在同一个窗口内分成五个子窗口来分别显示,注上文字标题.3.对一幅图像进行平移,显示原始图像与处理后图像,分别对其进行傅里叶变换,显示变换后结果,分析原图的傅里叶谱与平移后傅里叶频谱的对应关系。
4.对一幅图像进行旋转,显示原始图像与处理后图像,分别对其进行傅里叶变换,显示变换后结果,分析原图的傅里叶谱与旋转后傅里叶频谱的对应关系。
1.3:实验步骤和结果1.对实验任务1的实现代码如下:a=imread(’d:\tp.jpg’);i=rgb2gray(a);I=im2bw(a,0。
5);subplot(1,3,1);imshow(a);title('原图像');subplot(1,3,2);imshow(i);title(’灰度图像’);subplot(1,3,3);imshow(I);title('二值图像’);subplot(1,3,1);imshow(a);title('原图像');结果如图1。
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
数字图像处理
实验报告
实验二灰度图像的二值化处理
学号
姓名
日期
实验二灰度图像的二值化处理
一、实验目的
图像二值化是数字图像处理技术中的一项基本技术,二值化图像的显示与打印十分方便,存储与传输也非常容易,在目标识别、图像分析、文本增强、字符识别等领域得到广泛应用。
图像二值化是将灰度图像转化为只有黑白两类像素的图像,大多采用阈值化算法处理。
在不同的应用中,阈值的选取决定着图像特征信息的保留。
因此,图像二值化技术的关键在于如何选取阈值。
二、实验内容
1、编程绘制数字图像的直方图。
2、灰度图像二值化处理。
三、实验要求
1、自己选择灰度图像。
2、选择多种阈值分割算法,并比较和分析图像二值化处理的结果。
3、使用VC++编程序。
四、设计思想(阈值选取算法)
灰度图像是指只含亮度信息,不含色彩信息的图像,将彩色图像转化成为灰度图像的过程称为图像的灰度化处理。
图像的二值化处理就是将图像上的点的灰度置为0或255,也就是使整个图像呈现出明显的黑白效果。
即将256个亮度等级的灰度图像通过适当的阀值选取而获得仍然可以反映图像整体和局部特征的二值化图像。
阀值分割选取算法有:典型的全局阀值算法的Otsu 算法、局部阀值方法中的Bersen算法、灰度拉伸法、直方图方法等等。
1.Otsu算法的设计思想:设阀值将图像分割成两组,一组灰度对应目标,
另一组灰度对应背景,则这两组灰度值的类内方差最小,两组的类间方差最大。
对图像设阈值将图像分割成两组,一组灰度对应目标,另一组灰度对应背景,则这两组灰度值的类内方差最小,两组的类间方差最大。
2.Bersen算法的设计思想:把灰度阈值选取为随像素位置变化而变化的
函数,它是一种动态选择阈值的自适应方法。
3.灰度拉伸算法设计思想:灰度拉伸又叫对比度拉伸,它是最基本的一
种灰度变换,使用的是最简单的分段线性变换函数,它的主要思想是提高图像处理时灰度级的动态范围。
4.直方图算法的设计思想:把原始图像的灰度直方图从比较集中的某个
灰度区间变成在全部灰度范围内的均匀分布。
五、源程序(附上注释)
1. OTSU算法代码:
I=imread('2.jpg');
th=graythresh(I);
J=im2bw(I,th);
subplot(121)
imshow(I);
subplot(122)
imshow(J);
2. Bernsen算法代码:
%Bernsen算法代码:
clc;
clear all
close all
I=imread('2.jpg');
[m,n] = size(I);
I_gray=double(I);
T=zeros(m,n);
M=3;
N=3;
for i=M+1:m-M
for j=N+1:n-N
max=1;min=255;
for k=i-M:i+M
for l=j-N:j+N
if I_gray(k,l)>max
max=I_gray(k,l);
end
if I_gray(k,l)<min
min=I_gray(k,l);
end
end
end
T(i,j)=(max+min)/2;
end
end
I_bw=zeros(m,n);
for i=1:m
for j=1:n
if I_gray(i,j)>T(i,j)
I_bw(i,j)=255;
else
I_bw(i,j)=0;
end
end
end
subplot(121),imshow(I);
subplot(122),imshow(I_bw); 3. 改进的Bernsen算法代码:
clc;
clear all
close all
I=imread('2.jpg');
I_gray=double(I);
[m,n] = size(I);
a=0.3;
A=0;T1=0;S=0;
for i=1:m
for j=1:n
A=A+I_gray(i,j) ;
end
end
A=A*0.9;
while(S<A)
T1=T1+1;
for i=1:m
for j=1:n
if(I_gray(i,j)==T1)
S=S+I_gray(i,j);
end
end
end
end
T2=zeros(m,n);
T3=zeros(m,n);
M=3;
N=3;
for i=M+1:m-M
for j=N+1:n-N
max=1;min=255;
for k=i-M:i+M
for l=j-N:j+N
if I_gray(k,l)>max
max=I_gray(k,l);
end
if I_gray(k,l)<min
min=I_gray(k,l);
end
end
end
T2(i,j)=(max+min)/2;
T3(i,j)=max-min;
end
end
T4=medfilt2(T2,[M,N]);
T5=(T1+T4)/2;
I_bw=zeros(m,n);
for i=1:m
for j=1:n
if I_gray(i,j)>(1+a)*T1
I_bw(i,j)=255;
end
if I_gray(i,j)<(1-a)*T1
I_bw(i,j)=0;
end
if (1-a)*T1<=I_gray(i,j)<=(1-a)*T1
if T3(i,j)>a*T1
if I_gray(i,j)>=T4(i,j)
I_bw(i,j)=255;
else
I_bw(i,j)=0;
end
else if I_gray(i,j)>=T5(i,j)
I_bw(i,j)=255;
else
I_bw(i,j)=0;
end
end
end
end
end
subplot(121),imshow(I);
subplot(122),imshow(I_bw);
六、实验结果及实验分析
OTSU算法
Bernsen算法
改进的Bernsen算法
上面分别用了OTSU算法、Bernsen算法、改进的Bernsen算法三种方法得到了二值化结果,如上图。
通过对比不难发现用OTSU算法二值化后的人物比较清晰,背景和前景分割比较明显,改进的Bersen算法可以人物和背景比较好的分开来,而Bersen算法人物与背景较难区分。
七、个人体会
通过这次的实验,经过广泛查阅书籍和有关知识,掌握了很多不知道的知识,使我我对图像处理有了更深一步的了解。
Otsu算法可以得到比较理想的分割效果,分割效率也比较高,此法选出来的阈值比较稳定,分割质量有一定的保证,因而得到广泛的应用,是较为实用的全局二值化算法,Bersen 算法容易把背景本身当作两类来处理,此时用这种算法不能正确地分出前景和背景,改进的Bernsen算法是典型的局部二值化算法,分割效果比较清晰,可以把图像正确地二值化。