一幅图像中,最高灰度级和最低灰度级的差成为对比度。一幅低对比度的图像,看起来细节会少很多。可以通过对比度拉伸提高图像对比度,显示更多细节。先来看看对比度拉伸的典型变换:

书本中(冈萨雷斯:数字图像处理第三版P69)的对比度拉伸变换函数图是这样的:


图3.10(b)低对比度拉伸图中,最低灰度级为91,最高灰度级为138,并且要将灰度值拉伸至[0, 255]。阈值处理的函数的图像即为P64图3.2第二个图像,其中k = 109。
实验代码如下:

% 读入图像
img_1 = imread('Fig0310(b)(washed_out_pollen_image).tif');% max():返回一个行向量,向量的第i个元素是矩阵A的第i列上的最大值。
% 再一次即可求得最高灰度级
r_max = max(max(img_1));
% 与 max() 同理
r_min = min(min(img_1));% 求输入图像的尺寸
[r, c] = size(img_1);% 生成两张0图,一张用于对比度拉伸,一张用于阈值处理
img_2 = zeros(r, c);
img_3 = zeros(r, c);% 将输入图像转换成double型
img_1s = double(img_1);% 计算斜率
k = (255 - 0) / (r_max - r_min);
% 灰度级总和
sum = 0;for x = 1 : rfor y = 1 : c% 对每个像素点进行拉伸,并赋值到新图像img_2(x, y) = k * (img_1s(x, y) - r_min);% 求灰度级总和sum = sum + img_1s(x, y);end
end% 求阈值,这里阈值为平均值
avg = sum / (r * c);% 阈值处理
for x = 1 : rfor y = 1 : c% 小于阈值赋值0if img_1s(x, y) < avgimg_3(x, y) = 0;% 大于阈值赋值1elseimg_3(x, y) = 1;endend
end% 转换
img_2 =  im2uint8(mat2gray(img_2));
img_3 =  im2uint8(mat2gray(img_3));
% 显示
subplot(131), imshow(img_1);
subplot(132), imshow(img_2);
subplot(133), imshow(img_3);

结果如下:

数字图像处理实验之对比度拉伸相关推荐

  1. 数字图像处理实验之对比度拉伸、直方图均衡化和规定化

    [实验内容]:  一.运用Matlab对Lena进行对比度拉伸增强(利用 imadjust  )  二.运用Matlab对图像进行直方图均衡化和规定化 Matlab版本:R2015a 一.运用Matl ...

  2. 数字图像处理--图像增强之对比度拉伸

    我们前面提到过图像二值化,图像反转,本质上是对图像的所有像素点的灰度进行操作,属于灰度变换的内容.灰度变换的主要目的是用于图像增强. 而对比度拉伸是图像增强的一种方法,也属于灰度变换操作.我们看如下图 ...

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

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

  4. Win8Metro(C#)数字图像处理--2.31灰度拉伸算法

    Win8Metro(C#)数字图像处理--2.31灰度拉伸算法 原文:Win8Metro(C#)数字图像处理--2.31灰度拉伸算法  [函数名称] 灰度拉伸函数GrayStretchProces ...

  5. 数字图像处理实验01——直方图

    数字图像处理实验01 直方图 仅供学习 1.对实验图像RGB.jpg 进行彩色图像到灰度图像的转化,绘制其直方图,并选取合适的阈值将灰度图像转化为二值图像. 步骤 1)用下列函数将它们转换成不同灰度级 ...

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

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

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

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

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

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

  9. 数字图像处理实验三图像增强

    一.实验目的 (1)了解图像增强的目的及意义,加深对图像增强的 感性认识,巩固所学的图像增强的理论知识和相 关算法. (2)熟练掌握直方图均衡化和直方图规定化的计算过 程. (3)熟练掌握空域滤波中常 ...

最新文章

  1. “作为字节跳动面试官,有些话我不得不说!”
  2. android6 运行,Xbox串流开放测试,只需安卓6即可运行
  3. Linux下搜索文件常用方法
  4. sudo自动键入密码
  5. C++基础算法学习——完美立方
  6. 【转】 Java中的变量赋值和参数传递
  7. 硒测试中所需的功能和示例
  8. linux手机用什么购物支付,商城系统的微信支付应该如何配置?
  9. linux中利用shell脚本条件执行linux命令
  10. vue中 点击二维码刷新图片(src不变)
  11. 规范 : 日期在不同国家与项目之间的关系
  12. SQL Server 2008数据库自动化安装步骤视频教程,批发零售软件
  13. 单位换算:秒(s)/毫秒(ms)/微秒(us)/纳秒(ns)/皮秒(ps)之间密尔(mil)/毫米(mil)/英尺(inch)之间
  14. 百度离线地图开发教程
  15. 【华为机试 Python实现】VLAN资源池
  16. SmartGit一个月试用期过期的解决方法
  17. mysql指令sum_MySQL Sum()函数
  18. Java高并发系列---第1天(概念)
  19. 靠猪八戒接单根本就没什么肉吃,这些才是程序员赚外快的最佳方法!!!
  20. Haskell:理解Haskell中的CPS(Cont)

热门文章

  1. 计算机无法读取移动光驱,电脑检测不到光驱怎么办?
  2. Oracle的全文检索
  3. PhotoshopCC2019(64位)下载+安装教程
  4. 解决虚拟机ubuntu20.04不能连外网问题
  5. python实现求解最长公共子序列LCS问题
  6. uva11134 -Fabled Rooks
  7. 电脑提示ISDone.dll错误怎么办?
  8. TcpClient 示例程序 C 语言
  9. vulnstack_ATTCK1渗透
  10. maven LTDM 部署前台Tomcat 各种折腾---自己总结经验