南京理工大学数字图像处理实验报告 下载本文

内容发布更新时间 : 2024/5/20 17:08:34星期一 下面是文章的全部内容请认真阅读。

数字图像处理 实验报告

课程: 数字图像处理 教师: 王 韬 姓名: 学号:

实验一 直方图线性变换及直方图均衡化

一、实验目的

通过了解直方图的绘制、线性变换和均衡化的基本原理与实现方法,熟悉在计算机上进行直方图均衡化、线性变换的方法,来掌握简单的直方图均衡化和线性变换程序设计编写。

二、实验内容

编写直方图的显示、均衡化及线性变换的C++语言程序,同时显示线性变换后的直方图。

三、实验步骤

1、新建MFC工程;

2、分析程序流程; 3、编写程序; 4、运行调试;

5、显示结果; 6、分析结果。

四、实验原理及实现方案

(1)线性变换 原理:线性变换是灰度变换的一种,就是将一个灰度区间映射到另一个灰度区间的变换。线性增强变换可使图像动态范围加大,图像对比度扩展,图像清晰,特征明显,是图像增强的重要手段。

此次实验采取的灰度变换公式是分段函数,如下图所示,

g(i,j) 255

0 30 160 255 f(i,j) 部分程序代码如下(详细见源文件): for(i=1;i

for(j=0;j

int pos =width*i+j; BYTE c = pData[pos];

pDC->SetPixel(j,260+height-i,RGB(c,c,c)); if(c<30){

pDC->SetPixel(j,height-i,RGB(0,0,0));} else if(c>160){

pDC->SetPixel(j,height-i,RGB(255,255,255));} else{

BYTE c2=BYTE(1.0*255/130*(c-30));

pDC->SetPixel(j,height-i,RGB(c2,c2,c2)); }

count[int(c)]++; } }

通过对不同区域的灰度值进行不同的线性变换,从而达到预期目的。

(2)直方图均衡化

原理:直方图均衡化主要用于修正那些灰度范围小,灰度集中的图像,通过修正使灰度拉开,灰度变丰富,从而起到增强图像视觉效果的作用。

实现方案:根据书本上所介绍的方法计算变换函数Sk和对应每个Sk的Nsk,,最后求得每个灰度级均衡化后所得的概率。再根据所得的概率画出均衡化后的直方图,比较与均衡化前的直方图的区别,分析两者的差别。算法实验步骤:

步骤1:原图像素点个数 步骤2:原图分布概率 步骤3:原图累计概率

步骤4:对累计概率四舍五入 步骤5:绘制直方图

部分程序代码如下(详细见源文件): int ss[257];

for(i=0;i<257;i++){ ss[i]=0; }

int pos =width*i+j; for(i=0;i<256;i++){

count[i]=count[i]*10000/pos; ss[i+1]=ss[i]+count[i]; }

for(i=1;i<256;i++)

{ for(int ii=0;ii<256;ii++) {

if((ii*10000/256)>ss[i+1]) {

p[i+1]=ii; break; } }

if(p[i+1]!=p[i]) { kk++; pp[kk]=i; }