实验二图像基本操作参考程序

更新时间:2024-05-21 10:07:01 阅读量: 综合文库 文档下载

说明:文章内容仅供预览,部分内容可能不全。下载后的文档,内容与下面显示的完全一致。下载之前请确认下面内容是否您想要的,是否完整无缺。

实验二 图像基本操作

一、实验目的

1、熟悉及掌握图像的采样原理,实现图像的采样过程,进行图像的灰度转换。 2、理解直方图的概念及应用,实现图像直方图的显示,及通过直方图均衡和直方图规定化方法对图像进行修正。 二、实验环境

MATLAB 6.5以上版本、WIN XP或WIN2000计算机

三、相关函数 ? 图像的增强

1、 直方图

imhist函数用于数字图像的直方图计算或显示,

imhist(I, n)计算和显示图像I的直方图,n为指定的灰度级数目,默认为256。如果I是二值图像,那么n仅有两个值。

[counts,x] = imhist(...)返回直方图数据向量counts,相应的色彩值向量x。

如:

i=imread('e:\\w01.tif');

imhist(i); 2 、直方图均衡化

histeq函数用于数字图像的直方图均衡化,

J = histeq(I, n) 均衡化后的级数n,缺省值为64。

J = histeq(I, hgram) \直方图规定化\,即将原是图象 I 的直方图变换成用户指定的向量 hgram (即指定另一幅图像的直方图数据向量)。

如:

i=imread('e:\\w01.tif');

j=histeq(i,N);对图像i执行均衡化,得到具有N个灰度级的灰度图像j,N缺省值为64 3、 灰度调整

imadjust函数用于数字图像的灰度或颜色调整,

J = imadjust(I) 将灰度图像 I 中的亮度值映射到 J 中的新值并使 1% 的数据是在低高强度和饱和,这增加了输出图像 J 的对比度值。

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]。 如:

i=imread('e:\\w01.tif');

j=imadjust(i,[0.3,0.7],[]);将图像i转换为j,使灰度值从0.3~0.7与缺省值0~1相匹配

? 运算函数

1、Zeros生成全0数组或矩阵

如 B = zeros(m,n) or B = zeros([m n]) 返回一个 m*n 全0矩阵 2、取整函数 floor最小取整函数 round四舍五入取整函数 ceil最大取整函数

如a = [-1.9, -0.2, 3.4, 5.6, 7.0, 2.4+3.6i] I=round(a)

I =[ -2 0 3 6 7 2+ 4i]

四、实验内容

1、对一幅图像进行2倍、4倍、8倍和16倍减采样,显示结果。 a=imread('f:/1.jpg'); b=rgb2gray(a); for m=1:4 figure

[width,height]=size(b);

quartimage=zeros(floor(width/(m)),floor(height/(2*m))); k=1; n=1;

for i=1:(m):width for j=1:(2*m):height quartimage(k,n)=b(i,j); n=n+1; end k=k+1; n=1; end

imshow(uint8(quartimage)); End

2、显示一幅灰度图像a,改变图像亮度使其整体变暗得到图像b,显示两幅图像的直方图。

a=imread('f:\\lena_color.png')

c=rgb2gray(a) b=c-46

subplot(2,1,1);imhist(c);title('原图像') subplot(2,1,2);imhist(b);title('变暗后的图像')

3、对图像b进行直方图均衡化,显示结果图像和对应直方图。 b=imread('f:\\lena_color.png') c=rgb2gray(b) j=histeq(c)

subplot(2,2,1),imshow(c) subplot(2,2,2),imshow(j)

subplot(2,2,3),imhist(c) %显示原始图像直方图 subplot(2,2,4),imhist(j) %显示均衡化后图像的直方图

4、读入图像c,执行直方图规定化,使图像a的灰度分布与c大致相同,显示变换后图像及对应直方图。 I=imread('f:\\lena.png');

>> J=histeq(I,64); %均衡化成32个灰度级的直方图 >> [counts,x]=imhist(J); %返回直方图图像向量counts b=imread('f:\\1.jpg') Q=rgb2gray(b)

>> M=histeq(Q,counts); %将原始图像Q的直方图变成指定向量counts >> figure,

>> subplot(3,2,1),imshow(I); >> subplot(3,2,2),imshow(Q); >> subplot(3,2,3),imhist(I); >> subplot(3,2,4),imhist(Q)

本文来源:https://www.bwwdw.com/article/8kf7.html

Top