数字图像处理讲义
合集下载
相关主题
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
内容回顾
位图文件头 位图信息头
调色板
图像数据
BITMAPINFOHEADER
Typedef struct tag BITMAPINFOHEADER {
DWORD biSize; //本结构的长度,40个字节 DWORD biWidth; //图像宽,单位是像素 DWORD biHeight; //图像高,单位是像素 WORD biPlanes; //必须是1(位平面) WORD biBitCount;//颜色位数,1,4,8,24 DWORD biCompression; //压缩类型,如 //BI_RGB,BI_RLE4,BI_RLE8 DWORD biSizeImage;
g
dg
4.2 阈值变换
定义:
Gx,
y
0 if 255
if
Gx, y T Gx, y T
T为阈值
阈值变换是重要的图像分割算法,可以通过阈值变换获取图像中感兴趣的对 象。
//实际位图数据占用的字节数 DWORD biXPelsPerMeter; //水平分辨率 DWORD biYPelsPerMeter; //垂直分辨率 DWORD biClrUsed; //实际使用的颜色数 DWORD biClrImportant; //重要的颜色数 } BITMAPINFOHEADER;
int iWidth = pDib->GetWidth(); int iHeight = pDib->GetHeight(); int iBitsWidth = pDib->GetBitsWidth(); unsigned char * lpPixel; LPSTR lpStartBit = pDib->GetPixelBit(); int i,j; long plCount[256];
1. 直方图(Histogram)定义: 灰度直方图是灰度级的函数,描述的是图像中
具有该灰度级的像素的个数,其横坐标是灰度级, 纵坐标是该灰度出现的频率(像素个数)。
4.1 灰度直方图
2. 直方图的绘制
G 0 1 2 3 4 5 6 7
NG 0 5 4 5 6 2 14 0
01234567
4.1 灰度直方图
4.1 灰度直方图
3. 直方图的数学含义 y
Gx, y
连续图像函数
G g2
G g1
x
Ag 面积函数
H g lim Ag Ag g dAg
g 0
g
dg
H g Ag Ag g
4.1 灰度直方图
4. 直方图性质:反映总体灰度分布
4.1 灰度直方图
4. 直方图性质:不包含空间位置信息
两幅图像具有相同的直方图
BYTE rgbBlue; //该颜色的蓝色分量 BYTE rgbGreen; //该颜色的绿色分量 BYTE rgbRed; //该颜色的红色分量 BYTE rgbReserved; //保留值,不考虑 } RGBQUAD;
内容回顾
位图文件头 位图信息头
调色板
图像数据
图像数据:像素按照每行每列的顺序排列;每 一行的字节数必须是4的整倍数,不足的补0。
5. 直方图的作用:边界阈值选择
频率
0
100 阈值 T 200 255 灰度
双峰直方图与阈值的确定
4.1 灰度直方图
5. 直方图的作用:边界阈值选择
4.1 灰度直方图
5. 直方图的作用:边界阈值选择
4.1 灰度直方图
5. 直方图的作用:面积统计
H g lim Ag Ag g dAg
g 0
内容回顾
位图文件头 位图信息头
调色板
图像数据
调色板:颜色查找表,Look Up Table (LUT),由若干个颜色表项构成,每个 表项长度为4bit。
单色DIB:2个表项; 16色DIB:16个表项; 256色DIB:256个表项; 真彩色DIB:无调色板。
Typedef struct tag RGBQUAD {
理论上:W=biWidth*biBitCount/8 宏定义计算实际的W
#define W=(biWidth*biBitCount+31)/32*4
数据存储顺序:从下到上,从左到右。
wenku.baidu.com
第四讲 直方图及点运算
4.1 直方图 4.2 阈值变换; 4.3 线性变换; 4.4 非线性变换;
4.1 灰度直方图
// 获取图像宽度 // 获取图像高度 // 获取图像存储宽度 // 指向像素的指针 // 图像数据起始位置 // 循环变量 // 每一个灰度级像素数
for (i = 0; i < iHeight; i ++) {
for (j = 0; j < iWidth; j ++) {
lpPixel = (unsigned char *) lpStartBit + iBitsWidth * i + j; plCount[*(lpPixel)]++; } }
内容回顾
有关图像的几个概念 图像的存储格式;
内容回顾 像素(Pixel):最基本的图像元素(Picture Element),数字图像的最小单位。
邻域(Neighborhood):在给定像素附近的像 素集合。
内容回顾
位图文件头 位图信息头
调色板
图像数据
内容回顾
位图文件头 位图信息头
调色板
图像数据
4.1 灰度直方图
4. 直方图性质:不包含空间位置信息
4.1 灰度直方图
5. 直方图的作用:数字化参数的选择
像
像
元
元
数
数
正常
亮度
偏暗
亮度
像
像
元
元
数
数
偏亮
亮度
亮度过于集中 亮度
4.1 灰度直方图
a 正常,b 偏亮,c 偏暗,d 亮度过于集中
4.1 灰度直方图
5. 直方图的作用:边界阈值选择
4.1 灰度直方图
BITMAPFILEHEADER
Typedef struct tag BITMAPFILEHEADER { WORD bfType; //文件类型, 必须”BM”0x4D42 DWORD bfSize; //指定文件大小(bit) WORD bfReserved1; //保留字,不考 虑 WORD bfReserved2; //保留字,不考 虑 DWORD bfOffBits; //从文件头到位图数据的偏移字//节数 =sizeof(fileheader)+sizeof(infoheader) +sizeof(RGBQUAD) } BITMAPFILEHEADER