一、实验名称

图像直方图处理。(验证性)

二、实验目的及任务要求

1.掌握图像的直方图均衡化计算和编程

2.掌握图像的直方图匹配化计算和编程

3.掌握直方图处理在去雾操作中的应用

四、实验内容

1.编程提取图像lenna.jpg的8个位平面,并保存第7个位平面为lenna7.jpg.

提示:保存图片用imwrite函数

% 编程提取图像lenna.jpg的8个位平面,
% 并保存第7个位平面为lenna7.jpg.
close all;clc;
I = imread('lenna.jpg');
I = rgb2gray(I);
[m,n] = size(I);
subplot(3,3,1),imshow(I),title('原图');
for k=1:8
  for i=1:m
    for j=1:n           
       tmp(i,j)=bitget(I(i,j),k);   
    end
  end
  if k==7
      imwrite(mat2gray(tmp),'lenna7.jpg')

%保存图片,并命名为lenna7.jpg
  end
    subplot(3,3,k+1);   
    imshow(tmp,[]);
end

2. 对Fig03.tif图像实施分段线性变换(Gray-level slicing)。具体要求如下:

对于分段线性函数可以有以下两种方式

i=imread('Fig03.tif');
r=i;
if(r<0.3)
    s=0.3*r;
else
    if r<0.7
        s=0.235+2.58*(r-0.3);
     else
        s=1+0.3*(r-1);
    end
end
imshow(mat2gray(s));

% f=imread('Fig03.tif');
% [m,n]=size(f);
% s=zeros([m,n]);
% r=f;
% [m,n]=size(s);
% for i=1:m
%     for j=1:n
%         if r(i,j)<75
%             s(i,j)=0.3*r(i,j);
%         else if r(i,j)<180
%                 s(i,j)=r(i,j)*1.6;
%             else
%                 s(i,j)=0;
%             end
%         end
%     end
% end
% imshow(mat2gray(s));

3. 列出各灰度级像素的数目,频率,累计分布,灰度转换以及均衡化后的矩阵。

4.设有一幅 64×64 的离散图像,其灰度分成 8 层,灰度 n k 的值和分布情况如表所示绘制该图像的直方图,并求经过直方图均衡后的图像的直方图。

5.使用imhist,histeq函数进行直方图的均衡化和规定化,并显示结果

A.对humao.png进行直方图的均衡化,并给出实现以及代码均衡化前后的图像和他们的直方图的对比。

close all;clc;
i=imread('humao.png');
i=rgb2gray(i);
j=histeq(i);
figure,subplot(2,2,1),imshow(i);title('原始图像');
subplot(2,2,2),imshow(j),title('图像均衡化');
subplot(2,2,3),imhist(i),title('原始的直方图');
subplot(2,2,4),imhist(j),title('均衡化后的直方图');

B.对humao.png图像采用加法、乘法、幂次变换、线性变换等方法进行比较,将处理结果放在一个窗口中对比。

clear all; clc;
i=imread('humao.png');
i=rgb2gray(i);
i1=histeq(i);i11=im2double(i);
i2=power(i11,1.6);
i3=imadd(i,70);
i4=imadjust(i,stretchlim(i));
i5=immultiply(i,2);
subplot(2,3,1),imshow(i),title('原图');
subplot(2,3,2),imshow(i1),title('直方图均衡化');
subplot(2,3,3),imshow(i2),title('幂次变换');
subplot(2,3,4),imshow(i3),title('加法');
subplot(2,3,5),imshow(i4),title('线性阈值');
subplot(2,3,6),imshow(i5),title('乘法');

6.

对图像sweden_input.jpg进行去雾操作,要求保留其彩色信息,显示处理前面的图像对比和直方图对比图。

提示 R = I(:,:,1);表示提取彩色图像的红色分量;

函数cat可进行三分量的合成。

clear all;close all;clc;
I=imread('sweden_input.jpg');
R=I(:,:,1);G=I(:,:,2);B=I(:,:,3);
r=histeq(R);g=histeq(G);b=histeq(B);
% histeq(f,64)64个灰度级进行变换,默认256.
I1=cat(3,r,g,b);
subplot(2,2,1),imshow(I),title('原图');
subplot(2,2,2),imshow(I1),title('除雾图');

q=rgb2gray(I);w=rgb2gray(I1);
subplot(2,2,3),imhist(q,64);title('原灰度图直方图');
subplot(2,2,4),imhist(w,64);title('处理后原灰度图直方图');
% imhist()形成坐标轴,自动设定y轴坐标范围和刻度,只是显示,
% 不对直方图进行修改

7. 编程实现对图像lennaRGB.tif灰度化后截取目标脸部区域(200:400,200:350),效果如下图所示。

close all;clc;
I=imread('lennaRGB.tif');
i=rgb2gray(I);
i=double(i);
h=size(i);
i1=zeros(size(i));
i1(200:400,200:350)=1;
% 将区域赋予1,白色
i2=immultiply(i,i1);
% 相乘后选中区域颜色显示
i3=mat2gray(i2);
imshow(i3);

附加题:

不使用matlab自带的函数,按照直方图均衡的步骤编程实现对humao.png进行直方图的均衡化,并给出实现以及代码均衡化前后的图像和他们的直方图的对比。

I=imread('humao.png');
I=rgb2gray(I);
[m,n]=size(I);
% 统计每个像素值出现的次数
count=zeros(1,256);
for i =1:m
    for j=1:n
        count(1,I(i,j)+1)=count(1,I(i,j)+1)+1;
    end
end

c=zeros(1,256);
c=double(c);count=double(count);
% 统计每个像素值出现的概率,得到概率直方图
for i=1:256
   c(1,i)=count(1,i)/(m*n);
end
% 求累计概率,得到累计直方图(从2开始)
for i=2:256    
        c(1,i)=c(1,i-1)+c(1,i);
end

for i=1:256
       c(1,i)=c(1,i)*255;
end
i1=double(I);
for i=1:m
    for j=1:n
        i1(i,j)=c(1,floor(I(i,j)+0.5));
    end
end
i1=uint8(i1);
subplot(2,2,1),imshow(I),title('灰度图');
subplot(2,2,2),imhist(I),title('灰度图直方图');
subplot(2,2,3),imshow(i1),title('直方图均衡化');
subplot(2,2,4),imhist(i1),title('直方图均衡化');

《数字图像处理》实验五相关推荐

  1. 数字图像处理——第五章 图像复原与重建

    数字图像处理--第五章 图像复原与重建 文章目录 数字图像处理--第五章 图像复原与重建 写在前面 1 图像退化/复原过程的模型 2 噪声模型 2.1 高斯噪声 2.2 椒盐噪声 3 仅有噪声的复原- ...

  2. 数字图像处理matlab实验对图像复原,数字图像处理实验07图像的复原处理

    数字图像处理实验 一.数字图像处理实验 实验七 图像的复原处理 一.实验目的 熟悉几种在实际应用中比较重要的图像复原技术,学会用MATLAB复原函数对退化图像进行复原处理. 二.实验内容 1.用点扩散 ...

  3. 数字图像处理实验——Python语言实现

    数字图像处理实验--Python语言实现 实验一:数字图像处理入门 实验二:直方图均衡 实验三:线性平滑和锐化--掩模法 实验四:非线性平滑--中值滤波 实验五:非线性锐化--梯度法 GitHub地址 ...

  4. matlab数字图像实验报告,数字图像处理实验报告(matlab)

    数字图像处理实验报告(matlab) 学院:自动化学院 班级:电081班 姓名:李林树 学号:40850099 2011年10月 实验一 直方图均衡化 一. 实验目的: 1. 熟悉图像数据在计算机中的 ...

  5. c语言米粒数实验报告,数字图像处理实验报告米粒.doc

    数字图像处理实验报告米粒 一.任务描述 本次试验的主要任务是用matlab编写程序确定图1(原始图像)中的米粒个数,达到能辨认连接的两个米粒和不足一个的米粒的精确度,并计算出了米粒的平均大小,标识出了 ...

  6. c语言米粒数实验报告,数字图像处理实验报告米粒

    数字图像处理实验报告米粒 (4页) 本资源提供全文预览,点击全文预览即可全文预览,如果喜欢文档就下载吧,查找使用更方便哦! 9.9 积分 -x任务描述本次试验的主要任务是用matlab编写程序确定图1 ...

  7. 数字图像处理 第五章 图像变换

    目录 一.图像变换的概念和意义 图像处理方法的分类 频域变换的一般处理过程 二.傅立叶变换 傅里叶变换的作用 傅里叶变换的定义 傅里叶变换的条件 离散傅里叶变换 傅立叶变换的规律 FFT的应用-高通滤 ...

  8. 数字图像处理第五章——几何变换与图像配准

    数字图像处理第五章 数字图像处理---几何变换与图像配准 (一)点变换 (二)仿射变换 (三)投影变换 (四)应用于图像的几何变换 (五)MATLAB 中的图像坐标系统 5.1 输出图像位置 5.2 ...

  9. 图像处理边缘增强matlab,数字图像处理实验 matlab 图像增强 边缘检测 图像操作.doc...

    数字图像处理实验 matlab 图像增强 边缘检测 图像操作 实验1 点运算和直方图处理 实验目的 1. 掌握利用Matlab图像工具箱显示直方图的方法 2. 掌握运用点操作进行图像处理的基本原理. ...

  10. 数字图像处理实验(总计23个)汇总

    以下这些实验中的代码全部是我自己编写调试通过的,到此,最后进行一下汇总. 数字图像处理实验(1):PROJECT 02-01, Image Printing Program Based on Half ...

最新文章

  1. 别再说你不懂Linux内存管理了,10张图给你安排的明明白白!
  2. 2021年夏季学期“清华大学大数据能力提升项目” 招募《大数据实践课》企业合作项目...
  3. 自动化测试如何解决验证码的问题
  4. python怎样打开加密的文件_如何在Python中解密OpenSSL AES加密的文件?
  5. 手机做服务器性能咋样,服务器性能不足 怎样才能逼出最强状态
  6. SDHelper module加密系统解密
  7. ZZULIOJ 1064:加密字符
  8. Find 7轻装版和正式版存储内存方面区别
  9. 使用哈工大LTP做自然语言处理任务基础demo
  10. Linux 程序 动态库 静态库依赖关系
  11. 如何在谷歌上搜索: 31个 Google 高级搜索技巧
  12. 如何判断自己的计算机网络故障,电脑网卡坏了怎么修复 如何判断网卡是否坏了...
  13. 如何把illustrator圆圈5等分?
  14. github博客迁移——图床搭建
  15. 亚马逊测评地址有哪些风险?账号网络需要注意
  16. 亚洲小姐全球总冠军吴丹,《猎枭生死线》荧幕初吻超越柳岩徐冬冬
  17. 【Outlook 邮件配置】
  18. 如何在ICEM中将有对称面的半模结构网格转变为全模(解决uncovered faces 问题)
  19. leetcode系列(一):买卖股票
  20. Blender 下载设置

热门文章

  1. 国内各大互联网公司相关技术博客3.0版 (集合腾讯、阿里、百度、搜狐、新浪、网易、360等共29个)
  2. 万年历php程序含数据库,php之万年历
  3. FileZilla Server连接服务器失败
  4. 软件观念革命:交互设计精髓_“被催债”的设计推荐书单
  5. 悲剧:金山毒霸官网被黑客攻破
  6. 第五代移动通信技术(5G)
  7. 峰值,峰峰值,有效值的基本知识
  8. 526个儿童游戏APP应用音效游戏声音集合音效素材 Kids Game Sound Effects
  9. 进入浏览器下载文件,状态栏不显示下载图标
  10. 网站地图(sitemap)在线生成