《数字图像处理》实验五
一、实验名称
图像直方图处理。(验证性)
二、实验目的及任务要求
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 图像退化/复原过程的模型 2 噪声模型 2.1 高斯噪声 2.2 椒盐噪声 3 仅有噪声的复原- ...
- 数字图像处理matlab实验对图像复原,数字图像处理实验07图像的复原处理
数字图像处理实验 一.数字图像处理实验 实验七 图像的复原处理 一.实验目的 熟悉几种在实际应用中比较重要的图像复原技术,学会用MATLAB复原函数对退化图像进行复原处理. 二.实验内容 1.用点扩散 ...
- 数字图像处理实验——Python语言实现
数字图像处理实验--Python语言实现 实验一:数字图像处理入门 实验二:直方图均衡 实验三:线性平滑和锐化--掩模法 实验四:非线性平滑--中值滤波 实验五:非线性锐化--梯度法 GitHub地址 ...
- matlab数字图像实验报告,数字图像处理实验报告(matlab)
数字图像处理实验报告(matlab) 学院:自动化学院 班级:电081班 姓名:李林树 学号:40850099 2011年10月 实验一 直方图均衡化 一. 实验目的: 1. 熟悉图像数据在计算机中的 ...
- c语言米粒数实验报告,数字图像处理实验报告米粒.doc
数字图像处理实验报告米粒 一.任务描述 本次试验的主要任务是用matlab编写程序确定图1(原始图像)中的米粒个数,达到能辨认连接的两个米粒和不足一个的米粒的精确度,并计算出了米粒的平均大小,标识出了 ...
- c语言米粒数实验报告,数字图像处理实验报告米粒
数字图像处理实验报告米粒 (4页) 本资源提供全文预览,点击全文预览即可全文预览,如果喜欢文档就下载吧,查找使用更方便哦! 9.9 积分 -x任务描述本次试验的主要任务是用matlab编写程序确定图1 ...
- 数字图像处理 第五章 图像变换
目录 一.图像变换的概念和意义 图像处理方法的分类 频域变换的一般处理过程 二.傅立叶变换 傅里叶变换的作用 傅里叶变换的定义 傅里叶变换的条件 离散傅里叶变换 傅立叶变换的规律 FFT的应用-高通滤 ...
- 数字图像处理第五章——几何变换与图像配准
数字图像处理第五章 数字图像处理---几何变换与图像配准 (一)点变换 (二)仿射变换 (三)投影变换 (四)应用于图像的几何变换 (五)MATLAB 中的图像坐标系统 5.1 输出图像位置 5.2 ...
- 图像处理边缘增强matlab,数字图像处理实验 matlab 图像增强 边缘检测 图像操作.doc...
数字图像处理实验 matlab 图像增强 边缘检测 图像操作 实验1 点运算和直方图处理 实验目的 1. 掌握利用Matlab图像工具箱显示直方图的方法 2. 掌握运用点操作进行图像处理的基本原理. ...
- 数字图像处理实验(总计23个)汇总
以下这些实验中的代码全部是我自己编写调试通过的,到此,最后进行一下汇总. 数字图像处理实验(1):PROJECT 02-01, Image Printing Program Based on Half ...
最新文章
- 别再说你不懂Linux内存管理了,10张图给你安排的明明白白!
- 2021年夏季学期“清华大学大数据能力提升项目” 招募《大数据实践课》企业合作项目...
- 自动化测试如何解决验证码的问题
- python怎样打开加密的文件_如何在Python中解密OpenSSL AES加密的文件?
- 手机做服务器性能咋样,服务器性能不足 怎样才能逼出最强状态
- SDHelper module加密系统解密
- ZZULIOJ 1064:加密字符
- Find 7轻装版和正式版存储内存方面区别
- 使用哈工大LTP做自然语言处理任务基础demo
- Linux 程序 动态库 静态库依赖关系
- 如何在谷歌上搜索: 31个 Google 高级搜索技巧
- 如何判断自己的计算机网络故障,电脑网卡坏了怎么修复 如何判断网卡是否坏了...
- 如何把illustrator圆圈5等分?
- github博客迁移——图床搭建
- 亚马逊测评地址有哪些风险?账号网络需要注意
- 亚洲小姐全球总冠军吴丹,《猎枭生死线》荧幕初吻超越柳岩徐冬冬
- 【Outlook 邮件配置】
- 如何在ICEM中将有对称面的半模结构网格转变为全模(解决uncovered faces 问题)
- leetcode系列(一):买卖股票
- Blender 下载设置
热门文章
- 国内各大互联网公司相关技术博客3.0版 (集合腾讯、阿里、百度、搜狐、新浪、网易、360等共29个)
- 万年历php程序含数据库,php之万年历
- FileZilla Server连接服务器失败
- 软件观念革命:交互设计精髓_“被催债”的设计推荐书单
- 悲剧:金山毒霸官网被黑客攻破
- 第五代移动通信技术(5G)
- 峰值,峰峰值,有效值的基本知识
- 526个儿童游戏APP应用音效游戏声音集合音效素材 Kids Game Sound Effects
- 进入浏览器下载文件,状态栏不显示下载图标
- 网站地图(sitemap)在线生成