一、基于MATLAB的数字图像处理———灰度变换_f=imread('c:/experiment/test3.jpg'); >> imhist(f,8-程序员宅基地

技术标签: 基于matlab的灰度变换  

(一)基于MATLAB的数字图像处理———灰度变换

对于图像平面,定义为二维函数 f (x,y),其中x,y分别为空间横竖坐标。当f,x,y都是有限离散值时,图像即为数字图像。

一、图像的输入/输出和显示
从pc端读取图像,并显示出来是进行数字图像处理工作的第一步。
相关函数:
imread(‘filename’) //读取图片
imshow(f)//显示图片
figure//保留第一幅并输出第二幅
代码示例:

 f=imread('C:/experiment/test.png');
imshow(f);
>> g=imread('C:/experiment/test1.jpg');
>> figure,imshow(g);

代码结果:
使用figure函数后会保留上一步图片显示,如果直接使用imshow,则会覆盖上一张图片。

二、函数映射
使用空间域技术对图像的每个像素进行操作,即每个像素通过函数一对一,或多对一的映射处理得到处理后的图像。
1,相关函数:
imadjust//灰度值映射函数
代码示例

f=imread('C:/experiment/test2.jpg');
>> g=imadjust(f,[0,1],[1,0]);
>> imshow(g);
>> figure,imshow(f);

效果图:

imadjust
imadjust 函数,语法为g=imadjust(f,[low-in,hign-in],[low-out,high-out],gamma);
即,将输入图像指定灰度范围映射到想要得到的输出图像的灰度范围,gamma为映射函数曲线的特征参数。gamma小于1,则映射被加权至高的输出值,大于1,则被加权至较低的输出值,等于1为线性映射。gamma默认为1。

上例中输入灰度范围[0,1]映射到[1,0],显然是一种明暗反转。
对于imadjust的使用,我们可以用来研究我们感兴趣的灰度范围,将上例的灰度范围,我们指定将[0.3,0.7]的小范围灰度,扩展到整个[0,1],我们会发现图像较暗,这时我们选gamma为0.5.

 clear all
>> f=imread('C:/experiment/test2.jpg');
>> imshow(f);
>> g=imadjust(f,[0.3,0.7],[0,1]);
>> imshow(g);
>> figure,imshow(f);
>> g1=imadjust(g,[],[],0.5);
>> figure,imshow(g1);

效果图:
在这里插入图片描述
有时可以直接使用stretchlim函数获取输入灰度图像的灰度范围,再进行映射,能得到更好的效果。有时使用对数函数(g=clog(1+f)*)进行拉伸变换,因为其曲线特点,能够将输入图像中较窄的低灰度值映射到输出图像较宽的灰度值。

三、直方图处理
1,计算并绘制图像直方图
由直方图获取灰度图像灰度级以及相应灰度级的幅值。
相关函数:
imhist//提取图像中直方图信息

f=imread('C:/experiment/test3.jpg');
>> imhist(f,8);
>>figure,imshow(f);

在这里插入图片描述
imhist函数语法中,imhist(f,n),f为输入图像,n为横坐标数目,上例中n=8,即将256化为8个区间,得到的是相应区间灰度幅值。

2,直方图均衡
直方图均衡的原理是累加。第一个灰度级开始,后一个灰度级与前面区间所有的灰度级幅值相加得到新的灰度级幅值。
相关函数:
histeq//实现直方图均衡

 f=imread('C:/experiment/test3.jpg');
imhist(f);
>> figure,imshow(f);
>> g=histeq(f,256);
>> figure,imhist(g);
>> figure,imshow(g);

在这里插入图片描述
在这里插入图片描述
在直方图中可以看到直方图均衡的方法并不能生成平坦的直方图,但是它能够增加图像灰度级的动态范围。

2.直方图匹配(规定化)
直方图均衡化不能随心所欲地生成我们需要的直方图效果,这时我们就要进行直方图匹配。
直方图匹配的原理:通过利用原图像的直方图和希望得到的直方图来推导出其中映射的函数。

clear all
>>  r=127;                              
x=-r:r+1;
sigma=20;
y1=exp(-((x-80).^2)/(2*sigma^2));
y2=exp(-((x+80).^2)/(2*sigma^2));
y=y1+y2;                        %双峰高斯函数,任意函数都可以


y=y/sum(y);         %归一化,使函数符合概率分布的sum(y)==1这样一个规律
plot(y);            %待匹配的直方图

G=[];               %函数的累积直方图
for i=1:256
   G=[G sum(y(1:i))]; 
end

img=imread(' C:/experiment/test3.jpg');
[m n]=size(img);
hist=imhist(img);       %待处理图像的直方图
p=hist/(m*n);           
figure;plot(p)          %原图直方图

s=[];                   %待处理图像的累积直方图
for i=1:256
    s=[s sum(p(1:i))];
end

for i=1:256
    tmp{i}=G-s(i);
    tmp{i}=abs(tmp{i});         %因为要找距离最近的点,所以取绝对值
    [a index(i)]=min(tmp{i});   %找到两个累积直方图距离最近的点
end

imgn=zeros(m,n);
for i=1:m
   for j=1:n
      imgn(i,j)=index(img(i,j)+1)-1;    %由原图的灰度通过索引映射到新的灰度
   end
end

imgn=uint8(imgn);
figure;imshow(imgn)
figure;plot(imhist(imgn))       %新图的直方图

指定的灰度直方图效果
在这里插入图片描述
原始图像的灰度直方图效果
在这里插入图片描述
直方图匹配后的直方图
在这里插入图片描述

版权声明:本文为博主原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明。
本文链接:https://blog.csdn.net/qimingxia/article/details/88937242

智能推荐

sqlplus不是内部或外部命令-程序员宅基地

文章浏览阅读3.6k次,点赞3次,收藏3次。在虚拟机中安装Oracle数据库,在主机中连接时,会报sqlplus不是内部或外部命令....错误;这是因为本机没有安装,这时需要解压以下两个文件,配置本地环境。地址:https://pan.baidu.com/s/1lz7ycKG820I8fN4VZOlYMA这是64位。解压后,把下面两个文件地址添加到path路劲下(就像添加JDK一样)。..._sqlplus不是内部或外部命令

nyoj5 Binary String Matching 查子串个数 strstr函数模板题_nyoj5串匹配-程序员宅基地

文章浏览阅读1.5k次。Binary String Matching时间限制:3000 ms | 内存限制:65535 KB难度:3描述Given two strings A and B, whose alphabet consist only ‘0’ and ‘1’. Your task is only to tell how many times does A appear as a substring of B..._nyoj5串匹配

《数据分析与挖掘 第十四章 基于基站定位数据的商圈分析》_基于基站定位数据的商圈分析 scala-程序员宅基地

文章浏览阅读1.4k次。基于基站定位数据的商圈分析数据抽取以2014-1-1开始到2014-6-30结束时间作为分析窗口数据分析以55555这个人为例,判断其活动位置,基站号改变,说明其进入下一个区域,分析出2014-1-1下午零时53分进入36902基站,直到二时13分才进入36907基站,说明他在36902基站呆了80分钟数据预处理首先,去掉无用的属性,例如什么信令类型,LOC编号这些的,只留下日期,时间..._基于基站定位数据的商圈分析 scala

【技术分享】针对SOAP的渗透测试与防护_available soap services 漏洞-程序员宅基地

文章浏览阅读2.2k次,点赞3次,收藏2次。本文翻译自:https://blog.securelayer7.net/owasp-top-10-penetration-testing-soap-application-mitigation/SOAP概述简单对象访问协议(SOAP)是连接或Web服务或客户端和Web服务之间的接口。SOAP通过应用层协议(如HTTP,SMTP或甚至TCP)进行操作,用于消息传输。图1 SOAP操..._available soap services 漏洞

GB∕T 33171-2016 城市交通运行状况评价规范_城市交通运行状况评价规范 下载-程序员宅基地

文章浏览阅读407次,点赞5次,收藏8次。标准号:GB/T 33171-2016中文标准名称:城市交通运行状况评价规范 英文标准名称:Specification for urban traffic performance evaluation_城市交通运行状况评价规范 下载

ROS1与ROS2的bag包互换(包含自定义消息)_ros2的rosbag可以用ros1播放么-程序员宅基地

文章浏览阅读7.3k次,点赞8次,收藏48次。https://blog.csdn.net/shanpenghui/article/details/117282535https://blog.csdn.net/weixin_37532614/article/details/109602947https://blog.csdn.net/weixin_41010198/article/details/117042386_ros2的rosbag可以用ros1播放么

随便推点

Javamail发送邮件后并保存邮件到已发送_代码发送的邮件 邮件服务器有已发送的邮件吗-程序员宅基地

文章浏览阅读1.1w次。前言最近北京暴雨,不知道为什么,特喜欢下雨天,下雨天适合睡觉,同样也适合写作!需求分析最近有个需求是将发送的邮件保存到已发送,一般来说最简单的做法是在服务器上配置,但是产品说,很多用户不知道这个选项,最好技术来实现,好吧,既然这样说了,干就完了!查看JavaMail Api文档邮件是在邮件服务器上存储的,邮件服务器上建立了各种的文件夹,比如INB_代码发送的邮件 邮件服务器有已发送的邮件吗

【调剂】太原科技大学 材料科学与工程学院特种金属制造与固废高值化利用课题组招收冶金、材料、机械、化工、计算机类调剂生...-程序员宅基地

文章浏览阅读297次。公众号【计算机与软件考研】每天都会发布最新的计算机考研调剂信息!点击公众号界面左下角的调剂信息或者公众号回复“调剂”是计算机/软件等专业的所有调剂信息集合,会一直更新的。太原科技大学 材料科学与工程学院特种金属制造与固废高值化利用课题组招收冶金、材料、机械、化工、计算机类调剂生:一志愿为工学专业、数一数二均可。课题组简介:本课题组与山西建邦集团共同成立“优特钢新材料产业技术研究院”,并建设有“太原..._太原科技大学任志峰

docker-compose.yaml设置中国时区_把docker-compose.yml里的这一行 - tz=cn 改成 - tz=asia/shan-程序员宅基地

文章浏览阅读3w次,点赞11次,收藏14次。背景docker中如果对时区不加限制,默认会采用格林尼治时间(GMT),这给日常程序部署、日志查看、错误调试等带来了诸多麻烦与困扰。每次都需要将event发生的显示时间+8个时区,手工换算成北京时间,想想都令人抓狂。Dockerfile中配置时区在Dockerfile中,可以通过如下方式添加中国时区:FROM docker.io/centosMAINTAINER DAVID# 使用..._把docker-compose.yml里的这一行 - tz=cn 改成 - tz=asia/shanghai

【工具使用系列】关于 MATLAB 径向基神经网络,你需要知道的事-程序员宅基地

文章浏览阅读263次。2019独角兽企业重金招聘Python工程师标准>>> ..._径向基神经网络工具

经典搜索算法总结-程序员宅基地

文章浏览阅读1.1w次,点赞20次,收藏167次。前言0x01 搜索问题的形式化0x02 树搜索和图搜索0x03 搜索算法的评估0x04 盲目搜索算法0x04.01 宽度优先搜索算法BFS0x04.02 一致代价搜索算法UCS0x04.03 深度优先搜索算法DFS前言搜索问题是在解决各类问题时不可避免的重点难点,很多问题的求解过程都可以转变为搜索问题。比如,对于以下罗马尼亚问题,希望找到一条路径使得从城市 Arad 到城市 Bucuresti 的路径最短,这就是一个经典的搜索问题,在数据结构课程中,我们都知道使用 Dijkstra 算法来求得最优解,._搜索算法

华为云鲲鹏服务器安装gogs_kunpeng golang镜像-程序员宅基地

文章浏览阅读922次。部署环境名称类型服务器华为云鲲鹏服务器系统版本CentOS 7.6 64bit with ARM安装gogs安装gityum install git -y下载gogs的armv8版本 gogs_0.12.3_linux_armv8.tar.gz 上传到服务器上解压gogs_0.12.3_linux_armv8.tar.gztar -zxvf gogs_0.12.3_linux_armv8.tar.gz进入到对应目录cd gogs后台_kunpeng golang镜像

推荐文章

热门文章

相关标签