图像处理报告
合集下载
相关主题
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
图像处理课程报告
2.水平镜像翻转 其变换矩阵如下:
X=width-X0-1 (width 为图像宽度) Y=Y0
3.垂直镜像倒转 其中变换矩阵如下:
X=X0 Y=height-Y0-1 (height 为图像高度) 它相当于把原图的像素矩阵的最后一行像素值赋值给第一行,首先找到 (0,0)对应的 (height-1,0)像素值,然后依次赋值该行的像素数据;最后当前行赋值结束,依次下一行。重 点是找到每行的第一个像素点即可。
1. 灰度直方图
灰度直方图(histogram)是灰度级的函数,描述的是图像中每种灰度级像素的个数,反 映图像中每种灰度出现的频率。横坐标是灰度级,纵坐标是灰度级出现的频率。
依据定义,若图像具有 L(通常 L=256,即 8 位灰度级)级灰度,则大小为 MxN 的灰度 图像 f(x,y)的灰度直方图 hist[0…L-1]可用如下计算获得。
//建立临时坐标 记录起始坐标(0,0)平移过来的位
//原始图像平移为(0,0) 图像把它平移到 Place 位置 //填充黑色='0' //补码 00H='\0'
Place=dlg.m_yPY*(m_nWidth*3+num); //前 m_yPY 行都要填充为黑色
图像处理课程报告
课 程: 班 级: 学 号: 学生姓名:
图像处理 119134-20 20131003343
范瑞
2015 年 11 月
图像处理课程报告
目录
一. 课程背景 .................................................................................. 1 二. 课程选题 .................................................................................. 1 三. 设计算法 .................................................................................. 1
图像处理课程报告
一. 课程背景
随机计算机技术的发展,数字图像的采集和应用,特别是加工技术近年来 得到极大的重视和长足的进展,出现了许多有关的新理论、新方法、新算法、新 手段和新设备,并已使得数字图像技术在科学研究、工业生产、医疗卫生、教育、 娱乐、管理和通信等方面得到了广泛的应用,对失去社会发展、改善人们的生活 水平都起到了重要的作用。
灰度级的升或降序排列,取位于中间的灰度值来代替该点的灰度值。
3
图像处理课程报告
例如选择滤波的窗口如下图,是一个一维的窗口,待处理像素的灰度取这个模板中 灰度的中值,滤波过程如下:
常用的窗口还有方形、十字形、圆形和环形。不同形状的窗口产生不同的滤波效果, 方形和圆形窗口适合外轮廓线较长的物体图像,而十字形窗口对有尖顶角状的图像效果 好。
类型的结构,定义一种颜色。
RGBQUAD 结构的定义如下:
typedef struct tagRGBQUAD
{
BYTErgbBlue;// 蓝色的亮度(值范围为 0-255)
BYTErgbGreen; // 绿色的亮度(值范围为 0-255)
BYTErgbRed; // 红色的亮度(值范围为 0-255)
// 4(16 色),8(256 色)或 24(真彩色)之一
DWORD biCompression; // 位图压缩类型,必须是 0(不压缩),
// 1(BI_RLE8 压缩类型)或 2(BI_RLE4ຫໍສະໝຸດ Baidu压缩类型)之一
DWORD biSizeImage; // 位图的大小,以字节为单位
LONG
biXPelsPerMeter; // 位图水平分辨率,每行像素数
但邻域平均值主要缺点是在降低噪声的同时使图像变得模糊,特别在边缘和细节处, 而且邻域越大,在去噪能力增强的同时模糊程度越严重。
2. 高斯平滑 为了克服简单局部平均法的弊端(图像模糊),目前已提出许多保持边缘、细节的局部平
滑算法。它们的出发点都集中在如何选择邻域的大小、形状和方向、参数加平均及邻域各店 的权重系数等。
1.灰度直方图 ............................................................1 2.图像几何变换 ........................................................1 3.图像平滑 ................................................................3 四. 关键代码 .................................................................................. 6 1.图像平移 ................................................................6 2.图像翻转 ................................................................9 3.图像翻转 ................................................................9 4.高斯平滑 ..............................................................10 5.中值滤波 ..............................................................12 五. 测试结果 ................................................................................ 15 六. 总结分析 ................................................................................ 18
正因为图像处理在社会生活中有着越来越重要的作用,这也就体现了我们学 习这门课程的必要性。而通过课程的学习可以让我们掌握一些图像处理的初步技 术,从而为今后在图像处理的学习方面打下了基础。
二.课程选题
图像的读取,显示,保存等处理,通过 MFC,做了灰度直方图,图像的几何变换,图 像平滑等操作
三. 设计算法
DWORD biSize; // 本结构所占用字节数
LONG biWidth; // 位图的宽度,以像素为单位
LONG biHeight; // 位图的高度,以像素为单位
WORD biPlanes; // 目标设备的级别,必须为 1
WORD biBitCount// 每个像素所需的位数,必须是 1(双色),
中值滤波对于消除孤立点和线段的干扰十分有用,尤其是对于二进噪声,但对消除 高斯噪声的影响效果不佳。对于一些细节较多的复杂图像,可以多次使用不同的中值滤 波。 4. BMP 文件格式 BMP 文件头:BMP 文件头数据结构含有 BMP 文件的类型、文件大小和位图起始位置等 信息。 其结构定义如下: typedef struct tagBITMAPFILEHEADER { WORD bfType; // 位图文件的类型,必须为 BM DWORD bfSize; // 位图文件的大小,以字节为单位 WORD bfReserved1; // 位图文件保留字,必须为 0
{
num=(4-m_nWidth*3%4); sfSize=(m_nWidth*3+num)*m_nHeight; //每行多 number 个
}
else
{
num=0;
sfSize=m_nWidth*m_nHeight*3;
}
//注意:假如最后一行像素不足,我默认处理为完整的一行,不足补 00H //总之处理后的图像总是 m*n 且为 4 倍数,每行都完整存在
6
图像处理课程报告
/*临时变量存储的像素与 sfSize 相同 new 和 delete 有效的进行动态内存的分配和 释放*/
unsigned char *ImageSize; ImageSize=new unsigned char[sfSize];
int Place; 置
int m_pImagePlace; unsigned char black=0; unsigned char other=0;
4.图像旋转 图像饶原点旋转顺时针 theta 角矩阵变换如下:注意 BMP 图像(0,0)左下角
2
图像处理课程报告
3.图像平滑
1. 领域平滑 图像简单平滑是指通过邻域简单平均对图像进行平滑处理的方法,用这种方法在一定程
度上消除原始图像中的噪声、降低原始图像对比度的作用。它利用卷积运算对图像邻域的像 素灰度进行平均,从而达到减小图像中噪声影响、降低图像对比度的目的。
图像高斯平滑也是邻域平均的思想对图像进行平滑的一种方法,在图像高斯平滑中,对 图像进行平均时,不同位置的像素被赋予了不同的权重。
在图像简单平滑中,算法利用卷积模板逐一处理图像中每个像素,这一过程可以形象 地比作对原始图像的像素一一进行过滤整理,在图像处理中把邻域像素逐一处理的算法过程 称为滤波器。平滑线性滤波器的工作原理是利用模板对邻域内像素灰度进行加权平均,也称 为均值滤波器。
/*更改文件头信息 定义临时文件头结构变量*/ BITMAPFILEHEADER bfhsf; BITMAPINFOHEADER bihsf; bfhsf=bfh; bihsf=bih; bfhsf.bfSize=sfSize+54; fwrite(&bfhsf,sizeof(BITMAPFILEHEADER),1,fpw); fwrite(&bihsf,sizeof(BITMAPINFOHEADER),1,fpw); fread(m_pImage,m_nImage,1,fpo);
BYTErgbReserved;// 保留,必须为 0
} RGBQUAD;
5
图像处理课程报告
四. 关键代码
1.图像平移
int num;
//记录每行多余的图像素数个数
int sfSize;
//补齐后的图像大小
//重点:图像的每行像素都必须是 4 的倍数:1*1 的图像为 r g b 00H
if(m_nWidth*3%4!=0)
4
图像处理课程报告
WORD bfReserved2; // 位图文件保留字,必须为 0
DWORD bfOffBits; // 位图数据的起始位置,以相对于位图
// 文件头的偏移量表示,以字节为单位
} BITMAPFILEHEADER;
位图信息头:BMP 位图信息头数据用于说明位图的尺寸等信息。
typedef struct tagBITMAPINFOHEADER{
1、初始化 hist[k]=0; k=0,…,L-1 2、统计 hist[f(x,y)]++; x=0,…,M-1, y =0,…,N-1 3、归一化 hist[f(x,y)]/=M*N
2. 图像几何变换
实现简单的空间变换,如图像平移、镜像、缩放和旋转。主要是通过线性代数中的齐次 坐标变换。
1
1.图像平移 坐标变换如下
LONG
biYPelsPerMeter; // 位图垂直分辨率,每列像素数
DWORD biClrUsed;// 位图实际使用的颜色表中的颜色数
DWORD biClrImportant;// 位图显示过程中重要的颜色数
} BITMAPINFOHEADER;
颜色表 :颜色表用于说明位图中的颜色,它有若干个表项,每一个表项是一个 RGBQUAD
高斯平滑与简单平滑不同,它在对邻域内像素进行平均时,给予不同位置的像素不同的 权值。
模板越靠近邻域中心位置,其权值越高。在图像细节进行模糊时,可以更多的保留图像 总体的灰度分布特征。
3. 中值滤波 在使用邻域平均法去噪的同时也使得边界变得模糊。而中值滤波是非线性的图像处
理方法,在去噪的同时可以兼顾到边界信息的保留。 选一个含有奇数点的窗口 W,将这个窗口在图像上扫描,把窗口中所含的像素点按