其他常用的图像转换函数有:
gray2ind函数,将灰度图像转换成索引图像。 Im2bw函数,将其它图像转化为二值图像。 Ind2gray函数,将索引图像转换成灰度图像。 Rgb2gray函数,将彩色图像转换成灰度图像。
1.利用imread( )函数读取一幅图像,存入一个数组中; 2.利用whos 命令提取该读入图像flower.tif的基本信息; 3.利用imshow()函数来显示这幅图像; 函数执行语句
A = imread('saturn.png');
whos
Name Size Bytes Class Attributes
A 1500x1200x3 5400000 uint8
imshow(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)
1
实验二 图像直方图与灰度变换
下面给出灰度变化的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幅图
2
Imhist(I,64); %将原图像直方图显示为64级灰度 Title(‘原图像直方图’) ; %给原图像直方图加标题名 Subplot(1,2,2); %作第2幅子图
Imhist(J,64) ; %将均衡化后图像的直方图显示为64级灰度 Title(‘均衡变换后的直方图’) ; %给均衡化后图像直方图加标题名
1、利用自己编写的灰度直方图计算程序计算rice.tif图像的直方图,并与系统自带的计算程序进行对比。
A = imread('rice.png'); subplot(1,3,1); imshow(A) title('lady-rice'); [m,n] = size(A); e = zeros(1,256); for k = 0:255 end
subplot(1,3,2);
3
for i = 1:m
for j = 1:n
if A(i,j) == k
e(k+1) = e(k+1)+1;
end
end
end
bar(e); subplot(1,3,3); imhist(A,256);
2.进行灰度直方图的均衡化。
I=imread('cameraman.tif'); J=histeq(I); figure; imshow(I); title('原图像'); figure; imshow(J);
title('直方图均衡化后的图像'); figure; Imhist(J,64);
title('均衡变化后的直方图');
3、利用直接灰度变换法对图像进行灰度变换
f=imread('rice.png'); figure; imshow(f); title('原始图像') ; figure; imhist(f,256);
title('原始图像直方图');
4
f1=imadjust(f,[0 1],[1 0]);%灰度转换,实现明暗转换(负片图像) figure; imshow(f1);
title('明暗转换后的图像'); figure; imhist(f1,256);
title('明暗转换直方图');
f2=imadjust(f,[0.5 0.75],[0 1]);%将0.5到0.75的灰度级扩展到范围[0 1] figure; imshow(f2);
title('0.5到0.75的灰度级扩展到范围[0 1]的图像'); figure; imhist(f2,256);
title('灰度级扩展直方图');
5