实验报告---实验三图像灰度变换处理模板.docx

实验报告---实验三图像灰度变换处理模板.docx

  1. 1、本文档共31页,可阅读全部内容。
  2. 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
  3. 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  4. 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
计算机科学与工程学院 天津理工大学 计算机科学与工程学院 实验报告 2016 至 2017 学年 第 二 学期 实验三 图像灰度变换处理 课程名称 数字图像处理 学号 学生姓名 卢洪利 年级 2014 专业 计算机科学 教学班号 2 实验地点 主 7-215 与技术 实验时间 2016年 4月 4日 第1节至第2 节 主讲教师 杨淑莹 实验成绩 软件运行 特色 算法分析 流程设计 报告成绩 总成绩 计算机与通信工程学院 实验(三) 实验名称 图像灰度变换处理 软件环境 OpenSUSE Leap 42.2 Qt 5.6.1 硬件环境 PC 实验目的 掌握图像的灰度变换原理,编程实现图像的灰度变换功能。 实验内容(应包括实验题目、实验要求、实验任务等) 1. 实现灰度直方图。 要求:了解灰度直方图基本原理,实现灰度直方图。 说明:灰度直方图基本原理 灰度直方图简介 基本原理 任务: 1)在左视图中打开一幅位图。 2)制作一个【灰度直方图】菜单,将消息映射到右视图中,在右视图中实现灰度直方图。 2. 实现灰度线性变换。 要求:了解灰度线性变换基本原理,实现灰度线性变换。 说明:灰度线性变换基本原理 任务: 1)在左视图中打开一幅位图。 2)制作一个【灰度线性变换】菜单,将消息映射到右视图中,在右视图中实现灰度线性变换。 3. 实现灰度非线性变换。 要求:了解灰度非线性变换基本原理,实现灰度非线性变换。 说明:灰度非线性变换基本原理 灰度对数变换 灰度幂次变换 灰度指数变换 任务: 1)在左视图中打开一幅位图。 2)制作一个【灰度对数变换】菜单,将消息映射到右视图中,在右视图中实现灰度对数变换。 3)制作一个【灰度幂次变换】菜单,将消息映射到右视图中,在右视图中实现灰度对数变换。 2 计算机与通信工程学院 4)制作一个【灰度指数变换】菜单,将消息映射到右视图中,在右视图中实现灰度指数变换。 4. 实现阈值变换。 要求:了解阈值变换图基本原理,实现灰度阈值变换 说明:灰度阈值变换基本原理 任务: 1)在左视图中打开一幅位图。 2)制作一个【阈值变换】菜单,将消息映射到右视图中,在右视图中实现阈值变换。 5. 实现拉伸变换。 要求:了解拉伸变换图基本原理,实现图像拉伸变换 说明: 拉伸 变换基本原理 任务: 1)在左视图中打开一幅位图。 2)制作一个【 拉伸 变换】菜单,将消息映射到右视图中,在右视图中实现 拉伸 变换。 6. 实现均衡变换。 要求:了解均衡变换图基本原理,实现 均衡变换 。 说明: 任务: 1)在左视图中打开一幅位图。 2)制作一个【均衡变换】菜单,将消息映射到右视图中,在右视图中实现均衡变换。 实验过程与实验结果 一、 直方图 图像直方图是用来表示图像中亮度分布的直方图,标绘了图像中每个亮度值的像素数。 对于直方图所表达的含义,简单来说就一条规则: “左暗右明 ”,横坐标的左侧为纯黑、较暗的区域,而右侧为较亮、纯白的区域。因此,一张较暗图片的图像直方图的波峰应该出 现在左侧和中间(如上图是一张较暗图像的直方图) ;而整体明亮、只有少量阴影的图像则相反。 我们的实验中,除了灰度直方图外,还分别对红、绿、蓝三个分量绘制了直方图。 对于真彩色图像来说,绘制灰度直方图的第一步是得到每个像素的灰度值,从 RGB 转换为灰度值有一个著名的心理学公式: 之所以不用平均值,是因为是因为人眼对 RGB 颜色的感知程度并不相同,所以在转换 的时候应该分别为 RGB 设置不同的权重。 考虑到一幅图像的每个像素都需要使用上面的公式,计算量比较大,我们这里采用了: 程序截图: 3 计算机与通信工程学院 图一 直方图 实验代码: 因为直方图的绘制过程稍复杂, 这里我们将这个功能单独设置为一个类, 完成该过程的 计算、存储和在屏幕上的绘制操作。 类的结构包括对灰度及各颜色分量数据的存储、绘制函数: #ifndef HISTOGRAM_H #define HISTOGRAM_H #include QWidget #include QLabel #include QPainter #include QDebug class Histogram : public QLabel { public: Histogram(QWidget* parent = 0); Histogram(QWidget*, Histogram*); 4 计算机与通信工程学院 void computeHstgrm(QImage img); void paintEvent(QPaintEvent *e); void drawBwHstgrm(int xBase, int yBase, int height); void drawRedHstgrm(int xBase, int y

您可能关注的文档

文档评论(0)

156****3514 + 关注
实名认证
内容提供者

该用户很懒,什么也没介绍

1亿VIP精品文档

相关文档