将JPG格式的彩色图像文件灰度化并进行直方图均衡

2024-02-24 13:48

本文主要是介绍将JPG格式的彩色图像文件灰度化并进行直方图均衡,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!

%  数字图像处理程序作业
%  本程序能将JPG格式的彩色图像文件灰度化并进行直方图均衡
%
%  输入文件:c:/test.jpg      待处理图像
%  输出文件:PicSampleGray.bmp  灰度化后图像
%            PicEqual.bmp       均衡化后图像
%
%  输出图形窗口说明
%  figure NO 1                  待处理彩色图像
%  figure NO 2                  灰度化后图像
%  figure NO 3                  直方图
%  figure NO 4                  均衡化后直方图
%  figure NO 5                  灰度变化曲线
%  figure NO 6                  均衡化后图像
%  1, 处理的图片名字要为 PicSample.jpg
%  2, 程序每次运行时会先清空workspace
 

clear all
%一,图像的预处理,读入彩色图像将其灰度化
PS=imread('c:/test.jpg');  %读入JPG彩色图像文件
figure;
imshow(PS)                                %显示出来  figureNO 1                              
title('输入的彩色JPG图像')
imwrite(rgb2gray(PS),'PicSampleGray.bmp');             %将彩色图片灰度化并保存
PS=rgb2gray(PS);                                       %灰度化后的数据存入数组
figure,imshow(PS)                                      %显示灰度化后的图像,也是均衡化前的样品   figure NO 2
title('灰度化后的图像')

%二,绘制直方图
[m,n]=size(PS);                                        %测量图像尺寸参数
GP=zeros(1,256);                                       %预创建存放灰度出现概率的向量
for k=0:255
    GP(k+1)=length(find(PS==k))/(m*n);                 %计算每级灰度出现的概率,将其存入GP中相应位置
end
figure,bar(0:255,GP,'g')                                    %绘制直方图                                    figure NO 3
title('原图像直方图')
xlabel('灰度值')
ylabel('出现概率')

%三,直方图均衡化
S1=zeros(1,256);
for i=1:256
    for j=1:i
         S1(i)=GP(j)+S1(i);                              %计算Sk
    end
end
 S2=round(S1*256);                                       %将Sk归到相近级的灰度
for i=1:256
    GPeq(i)=sum(GP(find(S2==i)));                        %计算现有每个灰度级出现的概率                  
end
figure,bar(0:255,GPeq,'b')                                   %显示均衡化后的直方图                        figure NO 4
title('均衡化后的直方图')
xlabel('灰度值')
ylabel('出现概率')
figure,plot(0:255,S2,'r')                                    %显示灰度变化曲线                            figure NO 5
legend('灰度变化曲线')
xlabel('原图像灰度级')
ylabel('均衡化后灰度级')

%四,图像均衡化
PA=PS;
for i=0:255
    PA(find(PS==i))=S2(i+1);                             %将各个像素归一化后的灰度值赋给这个像素
end
figure,imshow(PA)                                        %显示均衡化后的图像                           figure NO 6
title('均衡化后图像')
imwrite(PA,'PicEqual.bmp'); 

这篇关于将JPG格式的彩色图像文件灰度化并进行直方图均衡的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



http://www.chinasem.cn/article/742295

相关文章

使用Jackson进行JSON生成与解析的新手指南

《使用Jackson进行JSON生成与解析的新手指南》这篇文章主要为大家详细介绍了如何使用Jackson进行JSON生成与解析处理,文中的示例代码讲解详细,感兴趣的小伙伴可以跟随小编一起学习一下... 目录1. 核心依赖2. 基础用法2.1 对象转 jsON(序列化)2.2 JSON 转对象(反序列化)3.

C#使用SQLite进行大数据量高效处理的代码示例

《C#使用SQLite进行大数据量高效处理的代码示例》在软件开发中,高效处理大数据量是一个常见且具有挑战性的任务,SQLite因其零配置、嵌入式、跨平台的特性,成为许多开发者的首选数据库,本文将深入探... 目录前言准备工作数据实体核心技术批量插入:从乌龟到猎豹的蜕变分页查询:加载百万数据异步处理:拒绝界面

Python使用自带的base64库进行base64编码和解码

《Python使用自带的base64库进行base64编码和解码》在Python中,处理数据的编码和解码是数据传输和存储中非常普遍的需求,其中,Base64是一种常用的编码方案,本文我将详细介绍如何使... 目录引言使用python的base64库进行编码和解码编码函数解码函数Base64编码的应用场景注意

Java进行文件格式校验的方案详解

《Java进行文件格式校验的方案详解》这篇文章主要为大家详细介绍了Java中进行文件格式校验的相关方案,文中的示例代码讲解详细,感兴趣的小伙伴可以跟随小编一起学习一下... 目录一、背景异常现象原因排查用户的无心之过二、解决方案Magandroidic Number判断主流检测库对比Tika的使用区分zip

Java使用Curator进行ZooKeeper操作的详细教程

《Java使用Curator进行ZooKeeper操作的详细教程》ApacheCurator是一个基于ZooKeeper的Java客户端库,它极大地简化了使用ZooKeeper的开发工作,在分布式系统... 目录1、简述2、核心功能2.1 CuratorFramework2.2 Recipes3、示例实践3

基于Flask框架添加多个AI模型的API并进行交互

《基于Flask框架添加多个AI模型的API并进行交互》:本文主要介绍如何基于Flask框架开发AI模型API管理系统,允许用户添加、删除不同AI模型的API密钥,感兴趣的可以了解下... 目录1. 概述2. 后端代码说明2.1 依赖库导入2.2 应用初始化2.3 API 存储字典2.4 路由函数2.5 应

如何自定义Nginx JSON日志格式配置

《如何自定义NginxJSON日志格式配置》Nginx作为最流行的Web服务器之一,其灵活的日志配置能力允许我们根据需求定制日志格式,本文将详细介绍如何配置Nginx以JSON格式记录访问日志,这种... 目录前言为什么选择jsON格式日志?配置步骤详解1. 安装Nginx服务2. 自定义JSON日志格式各

Python使用date模块进行日期处理的终极指南

《Python使用date模块进行日期处理的终极指南》在处理与时间相关的数据时,Python的date模块是开发者最趁手的工具之一,本文将用通俗的语言,结合真实案例,带您掌握date模块的六大核心功能... 目录引言一、date模块的核心功能1.1 日期表示1.2 日期计算1.3 日期比较二、六大常用方法详

Python使用DrissionPage中ChromiumPage进行自动化网页操作

《Python使用DrissionPage中ChromiumPage进行自动化网页操作》DrissionPage作为一款轻量级且功能强大的浏览器自动化库,为开发者提供了丰富的功能支持,本文将使用Dri... 目录前言一、ChromiumPage基础操作1.初始化Drission 和 ChromiumPage

python dict转换成json格式的实现

《pythondict转换成json格式的实现》本文主要介绍了pythondict转换成json格式的实现,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下... 一开始你变成字典格式data = [ { 'a' : 1, 'b' : 2, 'c编程' : 3,