图像二值化实验报告c
图像二值化实验报告c
篇一:图像处理实验报告
1常用MATLAB图像处理命令
一、实验目的
1、熟悉并掌握MATLAB工具的使用;
2、实现图像的读取、显示、代数运算和简单变换。
二、实验环境
MATLAB2012a版本、WIN7计算机
三、常用函数
? 读写图像文件
1 imread
imread函数用于读入各种图像文件,如:a=imread('e:\w01.tif') 2 imwrite
imwrite函数用于写入图像文件,如:imwrite(a,'e:\w02.tif',’tif’) 3 imfinfo
imfinfo函数用于读取图像文件的有关信息,如:imfinfo('e:\w01.tif') ? 图像的显示
1 image
image函数是MATLAB提供的最原始的图像显示函数,如: a=[1,2,3,4;4,5,6,7;8,9,10,11,12];
image(a);
2 imshow
imshow函数用于图像文件的显示,如:
i=imread('e:\w01.tif');
imshow(i);
title(‘原图像’)%加上图像标题
3 colorbar
colorbar函数用显示图像的颜色条,如:
i=imread('e:\w01.tif');
imshow(i);
colorbar;
4 figure
figure函数用于设定图像显示窗口,如:figure(1); /figure(2); 5 subplot
把图形窗口分成多个矩形部分,每个部分可以分别用来进行显示。
Subplot(m,n,p)分成m*n个小窗口,在第p个窗口中创建坐标轴为当前坐标轴,用于显示图形。
6 plot
绘制二维图形
plot(y)
Plot(x,y)xy可以是向量、矩阵。
? 图像类型转换
1 rgb2gray
把真彩图像转换为灰度图像
i=rgb2gray(j)
2 im2bw
通过阈值化方法把图像转换为二值图像
I=im2bw(j,level)
Level表示灰度阈值,取值范围0~1(即0.n),表示阈值取自原图像灰度范围的n%
3 imresize
改变图像的大小
I=imresize(j,[m n])将图像j大小调整为m行n列
? 图像运算
1 imadd
两幅图像相加,要求同样大小,同种数据类型
Z=imadd(x,y)表示图像x+y
2 imsubstract
两幅图像相减,要求同样大小,同种数据类型
Z=imsubtract(x,y) 表示图像x-y
3 immultiply
Z=immultiply(x,y) 表示图像x*y
4 imdivide
Z=imdivide(x,y) 表示图像x/y
四、心得体会
学习了matlab中基本的图像处理命令,为以后图像处理打下了较好的基础。
2、对图像灰度分布的分析和直方图均衡
1、实验目的
(1)理解灰度分布直方图、累积灰度分布函数的概念,图像二值化的概念。
(2)学习用matlab编程计算图像直方图,累积分布函数并进行初步分析。
(3)深入理解灰度分布直方图的意义,并根据灰度直方图进行简单图像增强——直方图均衡。
(4)改进直方图均衡算法,进行直方图分段均衡并进行分析。
2、编程实现
close all;clear;clc;
%% 读入图像并转换为灰度图,显示
I=imread('E:\photos\109NIKON\e1.JPG');
figure(1);
imshow(I);
J=rgb2gray(I);
figu(转载自:www.hnBoX 博 旭范文 网:图像二值化实验报告c)re(2);
imshow(J);
one_or_zero=(J>128);
figure(3)
imshow(one_or_zero)
%% 对原始灰度图的分析
[m,n]=size(J); %图片的维数
note=zeros(1,256);%统计对应某灰度值图像点数 for i=1:m
for j=1:n
note(J(i,j)+1)=note(J(i,j)+1)+1;%256色是不是0—255? end
end
figure(4)
stem(note); %灰度分布直方图 (imhist函数可实现)sum_note=zeros(1,256);
sume_note(1)=note(1);
for i=2:256
sum_note(i)=sum_note(i-1)+note(i);
end
figure(5)
plot(sum_note) %累积分布图
axis([0 256 0 m*n])
grid on
% %% 图像灰度映射关系的确