matlab图像的灰度变换

更新时间:2023-07-12 23:57:42 阅读: 评论:0

实验二  图像的灰度变换
一、实验目的
1、 理解数字图像处理中点运算的基本作用;
2、 掌握对比度调整与灰度直方图均衡化的方法。
二、实验原理
1对比度调整
如果原图像f(x, y)的灰度范围是[m上海世外小学, M],我们希望对图像的灰度范围进行线性调整,调整后的图像g中队简介(x, y)的灰度范围是[n, N],那么下述变换:
就可以实现这一要求。
MATLAB图像处理工具箱中提供的imadjust函数,可以实现上述的线性变换对比度调整。imadjust函数的语法格式为:筛选条件
再打一字J = imadjust(I,[low_in  high_in], [low_out  high_out])
J = imadjust(I, [low_in  high_in], [low_out  high_out])返回原图像I经过直方图调整后的新图像J,[low_in  high_in]为原图像中要变换的灰度范围,[low_out  high_out]指定了变换后的灰度范围,灰度范围可以用 [ ] 空矩阵表示默认范围,默认值为[0, 1]。
不使用imadjust函数,利用matlab语言直接编程也很容易实现灰度图像的对比度调整。但运算的过程中应当注意以下问题,由于我们读出的图像数据一般是uint8型,而在MATLAB的矩阵运算中要求所有的运算变量为double型(双精度型)。因此读出的图像数据不能直接进行运算,必须将图像数据转换成双精度型数据。
2直方图均衡化
直方图均衡化的目的是将原始图像的直方图变为均衡分布的形式,即将一已知灰度概率密度分布的图像,经过某种变换变成一幅具有均匀灰度概率密度分布的新图像,从而改善图像的灰度层次。
MATLAB图像处理工具箱中提供的histeq函数,可以实现直方图的均衡化。
三、实验内容及要求
1、 用MATLAB在自建的文件夹中建立example2.m程序文件。在这个文件的程序中,将girl2.bmp图像文件读出,显示它的图像及灰度直方图(可以发现其灰度值集中在一段区域)。用imadjust函数将它的灰度值调整到[0,1]之间,并观察调整后的图像与原图像的差别,调整后的灰度直方图与原灰度直方图的区别;改变灰度值调整范围,观察调整后的图像的变化及其与原图像的差别,调整后的灰度直方图的变化及其与原灰度直方图的区别;进一步利用改变灰度值调整范围,实现图像的反转。
程序:
A=imread('E:\1\girl2.bmp','bmp');
figure(1),subplot(2,2,1);imshow(A);
figure(1),subplot(2,2,2);imhist(A);
B=imadjust(A,[0.35 0.65],[]);
figure(1),subplot(2,2,3);imshow(B);
figure(1),subplot(2,2,4);imhist(B)
两次改变调整范围:
我国世界文化遗产A=imread('E:\1\girl2.bmp','bmp');
C=imadjust(A,[0.35 0.65],[0 0.5]);
figure(2),subplot(2,2,1);imshow(C);
figure(2),subplot(2,2,2);imhist(C);
D=imadjust(A,[0.35 0.65],[0.2 0.8]);
figure(2),subplot(2,2,3);imshow(D);
figure(2),subplot(2,2,4);imhist(D)
图像的反转:
A=imread('E:\1\girl2.bmp','bmp');
E=imadjust(A,[0.35 0.65],[1 0]);
figure(3),subplot(1,2,1);imshow(E);
figure(3),subplot(1,2,2);imhist(E);
2、读出图像文件girl2.bmp,不调用imadjust函数,利用matlab语言直接编程实现图像的对比度调整和图像的反转。
      对比度调整:
A=imread('E:\1\girl2.bmp','bmp');
I=double(A);
J=I*1.5+40;
A1=uint8(J);
figure(4);subplot(1,2,1),imshow(A);
figure(4);subplot(1,2,2),imshow(A1);
   
反转:
          [X,MAP]=imread('E:\1\girl2.bmp','bmp');
figure(5);imshow(X,1-MAP);
3、 读取一幅灰度图像,用histeq函数将原始图像的灰度直方图均衡化,同时观察均衡化后的图像与前面图像的差别,均衡化后的灰度直方图与前面的灰度直方图的区别。读取一幅索引图像,重复直方图均衡化处理,比较二者结果
灰度图像:
        F=imread('E:\1\rice.tif','tif');
figure(6);subplot(2,2,1),imshow(F);
figure(6);subplot(2,2,2),imhist(F);
G=histeq(F);
figure(6);subplot(2,2,3),imshow(G);
figure(6);subplot(2,2,4),imhist(G);
惠文教育
美容院管理
索引图像:
H=imread('E:\1\forest.tif','tif');
figure(7);subplot(2,2,1),imshow(H);
figure(7);subplot(2,2,2),imhist(H);
I=histeq(H);
figure(7);subplot(2,2,3),imshow(I);
figure(7);subplot(2,2,4),imhist(I);
4、(选做内容)不调用histeq函数,利用matlab语言直接编程实现图像的直方图均衡化处理。
function yu=myhisteq(x)
m=size(x)
n=m(1)*m(2)
ma=max(max(x))
mi=min(min(x))
a=ma-mi+1
p=zeros(1,a)
pa=p
for i=1:m(1)
  for j=1:m(2) 
    for k=mi:ma
      if x(i,j)==k
          p(k-mi+1)=p(k-mi+1)+1

本文发布于:2023-07-12 23:57:42,感谢您对本站的认可!

本文链接:https://www.wtabcd.cn/fanwen/fan/82/1093365.html

版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系,我们将在24小时内删除。

标签:图像   灰度   直方图
相关文章
留言与评论(共有 0 条评论)
   
验证码:
推荐文章
排行榜
Copyright ©2019-2022 Comsenz Inc.Powered by © 专利检索| 网站地图