为了正常的体验网站,请在浏览器设置里面开启Javascript功能!
首页 > 灰度直方图统计实习

灰度直方图统计实习

2019-02-01 12页 doc 27KB 80阅读

用户头像

is_833902

暂无简介

举报
灰度直方图统计实习灰度直方图统计实习 姓名:__洪浪________ 学院:遥感信息工程学院 学号:2011302590181 班级:11012班 一. 实习目的 1. 掌握灰度图像直方图的概念和计算方法, 2. 了解直方图的作用和用途。 3. 提高编程能力。 4. 巩固所学知识——认识RAW格式文件的像元灰度存储特点和学会用循环语言对图像各像元灰度值进行调研和统计,以及灰度直方图的形式特点的认识。 5. 初步掌握PotoShop软件操作、图像文件格式读写与图像数据处理,提高学习兴趣和编程能力。 二. 实验内容和要求 1. 利用PotoSho...
灰度直方图统计实习
灰度直方图统计实习 姓名:__洪浪________ 学院:遥感信息工程学院 学号:2011302590181 班级:11012班 一. 实习目的 1. 掌握灰度图像直方图的概念和计算方法, 2. 了解直方图的作用和用途。 3. 提高编程能力。 4. 巩固所学知识——认识RAW格式文件的像元灰度存储特点和学会用循环语言对图像各像元灰度值进行调研和统计,以及灰度直方图的形式特点的认识。 5. 初步掌握PotoShop软件操作、图像文件格式读写与图像数据处理,提高学习兴趣和编程能力。 二. 实验内容和要求 1. 利用PotoShop显示图像的灰度直方图,从直方图中了解图像平均明暗度和对比度等信息。 2. 要求使用C或C++语言编写灰度图统计的程序,并计算图像的均值和差。 三. 实验步骤 1. 使用PotoShop显示直方图。 (1) 点击“文件”—>“打开”,打开一份图像; (2) 点击“图像”—>“直方图”,显示图像的灰度直方图; (3) 对图像做增强处理,例如选择“图像”—>“调整”—>“自动对比度”对图像进行灰度拉伸,然后再显示直方图,观察它的变化。 原图像和灰度直方图 调整后的图像灰度直方图 2. 用C或C++编写显示直方图的程序。 #include"stdio.h" #include"windows.h" void main() { // 声明变量 FILE *fp; BYTE pData[512*512]; int i,j; int m_histArray[256]; for (i=0;i<256;i++) { m_histArray[i]=0; } // 读取数据 fp=fopen("E:\\2011302590181 洪浪\\lena.raw","read");//通过访问文件地址调用图像 fread(pData,sizeof(BYTE),512*512,fp);//开辟内存来储存像元灰度值 // 统计灰度直方图 for(i=0; i < 512 * 512; i++) { for (j=0;j<256;j++) { if (pData [i] == j) m_histArray [j]++; } } // 输出统计结果 for (j=0;j<256;j++) { printf ("灰度值为%d的像元有%d个\n", j, m_histArray [j]); } fclose(fp);//关闭被调用图像 } 经过编译和调试可获得图像灰度统计 四. 思考题 1. 灰度直方图可以反映出一幅图像的那些特性? 1)表征了图像的一维信息。只反映图像中像素不同灰度值出现的次数(或频数)而未反映像素所在位置。2)与图像之间的关系是多对一的映射关系。一幅图像唯一确定出与之对应的直方图,但不同图像可能有相同的直方图。3)子图直方图之和为整图的直方图。 2. 灰度直方图有何用途编程实现一种灰度直图应用的程序。 可以用来对图像进行均衡化、增强处理,提升图像的对比度。 BOOL WINAPI Equalize(LPSTR lpDIBs, LONG lWidth, LONG lHeight) { unsigned char* lpSource; // 指向源图像的指针 LONG lTmp; // 临时变量 LONG t,s; // 循环变量 BYTE bMaptable[256]; // 灰度映射表 LONG lDegreeCount[256]; // 灰度计数表 LONG lLineBytes; // 图像每行的字节数 lLineBytes = WIDTHBYTES(lWidth * 8); // 计算图像每行的字节数 // 重置计数为0 for (t = 0; t< 256; t ++) { lDegreeCount[i] = 0; } for (t = 0;t < lHeight; t ++) {for (s = 0; s< lWidth; s++)/ /计算各个灰度值的计数 { lpSource = (unsigned char *)lpDIBs + lLineBytes * t + s; lDegreeCount[*(lpSource)]++; // 该灰度值的计数加1 } } for (t = 0; t < 256; t++)// 计算灰度映射表 { lTmp = 0; // 初始为0 for (s = 0; sj <= t ; s++) { lTmp += lDegreeCount[s]; } bMaptable[t] = (BYTE) (lTmp * 255 / lHeight / lWidth);// 计算灰度值新的映射表 } for(t = 0; t < lHeight; t++)// 每行 { for(s = 0; s < lWidth; s++)// 每列 { // 指向DIB第i行,第j个象素的指针 lpSource = (unsigned char*)lpDIBs + lLineBytes * (lHeight - 1 - t) + s; *lpSource = bMaptable[*lpSource]; // 根据映射表计算新的灰度值 } } return TRUE;}
/
本文档为【灰度直方图统计实习】,请使用软件OFFICE或WPS软件打开。作品中的文字与图均可以修改和编辑, 图片更改请在作品中右键图片并更换,文字修改请直接点击文字进行修改,也可以新增和删除文档中的内容。
[版权声明] 本站所有资料为用户分享产生,若发现您的权利被侵害,请联系客服邮件isharekefu@iask.cn,我们尽快处理。 本作品所展示的图片、画像、字体、音乐的版权可能需版权方额外授权,请谨慎使用。 网站提供的党政主题相关内容(国旗、国徽、党徽..)目的在于配合国家政策宣传,仅限个人学习分享使用,禁止用于任何广告和商用目的。

历史搜索

    清空历史搜索