数字图像灰度图像二值化实验报告matlab实现1

合集下载

matlab数字图像处理实验报告

matlab数字图像处理实验报告
Z2=imsubtract(A,B)
Z3=immultiply(A,B)
Z4=imdivide(A,B)
subplot(3,2,1); imshow(A);title('原图像A') subplot(3,2,2); imshow(B);title('原图像B') subplot(3,2,3); imshow(Z1);title('加法图像') subplot(3,2,4); imshow(Z2);title('减法图像') subplot(3,2,5); imshow(Z3);title('乘法图像') subplot(3,2,6); imshow(Z2);title('除法图像')
h=fspecial('average');%均值滤波器
3基于卷积的图像滤波函数
imfilter函数,filter2函数,二维卷积conv2滤波,都可用于图像滤波, 用法类似,如:
i=imread('e:\w01.tif');
j=filter2(h,i);
或者:
h=fspecial(‘prewitt')
用法:BW = edge(l,'sobel',thresh,direction),
I为检测对象;边缘检测算子可用sobel,roberts,prewitt,zerocross,log,canny;
thresh指定阈值,检测时忽略所有小于阈值的边缘,默认自动选择阈值;direction方向,在所指定的方向direction上,用算子进行边缘检测horizontal(水平方向)、vertical(垂直方向)或both(两个方向)。

matlab图像处理实验报告

matlab图像处理实验报告

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版实验报告

数字图像处理实验报告(matlab版)一.实验目的:熟悉数字图像处理中各种椒盐噪声的实质,明确各种滤波算法的的原理。

进一步熟悉matlab的编程环境,熟悉各种滤波算法对应的matlab函数。

实验结果给以数字图像处理课程各种算法处理效果一个更直观的印象。

二.实验原理:1.IPT(图像处理工具箱)基本函数介绍1. imread函数该函数用于从图形文件中读出图像。

格式A=IMRAED(FILENAME,FMT)。

该函数把FILENAME 中的图像读到A中。

若文件包含一个灰度图,则为二维矩阵。

若文件包含一个真彩图(RGB),则A为一三维矩阵。

FILENAME指明文件,FMT指明文件格式。

格式[X,MAP]=IMREAD(FILENAME,FMT).把FILENAME中的索引图读入X,其相应的调色板读到MAP中.图像文件中的调色板会被自动在范围[0,1]内重新调节。

FMT的可能取值为jpg 或jpeg,tif或tiff,bmp,png,hdf,pcx,xwd。

2.imwrite函数该函数用于把图像写入图形文件中。

格式IMWRITE(A,FILENAME,FMT)把图像A写入文件FILENAME中。

FILENAME指明文件名, FMT指明文件格式。

A既可以是一个灰度图,也可以是一个真彩图像。

格式IMWRITE(X,MAP,FILENAME,FMT)把索引图及其调色板写入FILENAME中。

MAP必须为合法的MATLAB调色板,大多数图像格式不支持多于256色的调色板。

FMT的可能取值为tif或tiff,jpg或jpeg,bmp,png,hdf,pcx,xwd。

3. imshow函数显示图像。

格式IMSHOW(I,N).用N级离散灰度级显示灰度图象I。

若省略N,默认用256级灰度显示24位图像,64级灰度显示其他系统。

格式IMSHOW(I,[LOW HIGH]),把I 作为灰度图显示。

LOW值指定为黑色,HIGH指定为白色,中间为按比例分布的灰色。

图像二值化及模板匹配matlab实现

图像二值化及模板匹配matlab实现

图像二值化图像的二值化处理(4张)就是将图像上的像素点的灰度值设置为0或255,也就是将整个图像呈现出明显的黑白效果。

将256个亮度等级的灰度图像通过适当的阀值选取而获得仍然可以反映图像整体和局部特征的二值化图像。

在数字图像处理中,二值图像占有非常重要的地位,首先,图像的二值化有利于图像的进一步处理,使图像变得简单,而且数据量减小,能凸显出感兴趣的目标的轮廓。

其次,要进行二值图像的处理与分析,首先要把灰度图像二值化,得到二值化图像。

所有灰度大于或等于阀值的像素被判定为属于特定物体,其灰度值为255表示,否则这些像素点被排除在物体区域以外,灰度值为0,表示背景或者例外的物体区域。

使用matlab编程实现两幅图像的块匹配操作其中rgb_image=imread('A.bmp');gray_image=rgb2gray(rgb_image);image=double(gray_image);ed_image=image;rgb_back=imread('B.bmp');红色部分表示要匹配的两张图片附件所含文件:附件中m文件代码:复制内容到剪贴板代码:clear;echo off;% for g=267% a1=imread([num2str(g),'.jpg']);rgb_image=imread('A.bmp');gray_image=rgb2gray(rgb_image);image=double(gray_image);ed_image=image;rgb_back=imread('B.bmp');gray_back=rgb2gray(rgb_back);back=double(gray_back);[y1,y2,x1,x2]=rowcol(back,image);[M,N]=size(back); %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%相关系数法%%%%%%%%%%%%%%%%%%%%%%%%%%%%%for i=x1:5:x2for j=y1:5:y2I=image(i:i+4,j:j+4);%块T=back(i:i+4,j:j+4);aver_I=mean(mean(I));%块均值aver_T=mean(mean(T));sub_I=I(1:5,1:5)-aver_I;%每块与均值之差squ_sub_I=sub_I.*sub_I;%差值平方sum_sub_I=sum(sum(sub_I)); %差值之和sum_squ_sub_I=sum(sum(squ_sub_I));%差值平方和sub_T=T(1:5,1:5)-aver_T;squ_sub_T=sub_T.*sub_T;sum_sub_T=sum(sum(sub_T));sum_squ_sub_T=sum(sum(squ_sub_T));mul=sub_I.*sub_T;sum_mul=sum(sum(mul)); %分子R=sum_mul/((sqrt(sum_squ_sub_I))*(sqrt(sum_squ_sub_T)));if R>0.9image(i:i+4,j:j+4)=255;endendendimage(x1:x2,y1)=255;image(x1:x2,y2)=255;image(x1,y1:y2)=255;image(x2,y1:y2)=255;h=mat2gray(image);figure,imshow(h)ed1=edge(ed_image,'canny',0.08);ed2=edge(ed_image,'prewitt',14);ed=ed1&ed2;% figure,imshow(ed)% figure,imshow(ed1)% figure,imshow(ed2)。

matlab简单图像处理实验报告

matlab简单图像处理实验报告

实验一:图像文件类型转换实验目的:理解数字图像文件的几种基本类型掌握在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

实验一内容(一)(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语言编写显示一幅灰度图像、二值图像、索引图像及彩色图像的程序,并进行相互之间的转换;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灰度处理二值化处理

matlab灰度处理二值化处理

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中灰度处理和二值化处理的原理和实现方法。

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

数字图像灰度图像二值化实验报告matlab
实现
数字图像处理
实验报告
实验二灰度图像的二值化处理
学号
姓名
日期
实验二灰度图像的二值化处理
一、实验目的
图像二值化是数字图像处理技术中的一项基本技术,二值化图像的显示与打印十分方便,存储与传输也非常容易,在目标识别、图像分析、文本增强、字符识别等领域得到广泛应用。

图像二值化是将灰度图像转化为只有黑白两类像素的图像,大多采用阈值化算法处理。

在不同的应用中,阈值的选取决定着图像特征信息的保留。

因此,图像二值化技术的关键在于如何选取阈值。

二、实验内容
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=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(ST1=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=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)I_bw(i,j)=0; end
if (1-a)*T1if 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算法是典型的局部二值化算法,分割效果比较清晰,可以把图像正确地二值化。

-全文完-
11。

相关文档
最新文档