实验二图像二值化 1、掌握利用VC采集一幅数字图像的基本方法, 实验目的 2加深了解阀值逸择对图像结果的影响 加深对图像灰度直方图概念的理解: 4、掌据基本的阀值确定方法。 图像的二值化处理,就是讲图像上的各点原有的连续灰度(例如 0°255)置为最小(0)或最大(255),从而将一幅连续灰度变化的图象转 李为一幅里白图像,且只有里(灰度值为0)与白(灰府值为255),也就 是讲整个图像呈现出明显的黑白效果。经过二值化处理的图像,边缘轮廓 常鲜明,可以达到突出目标、淡化背景的作用,适合于处理简单的目标和逻 辑判断。 图像二伯化的基木方法,是先确定一个圆值,然后将所有象素点的 灰度同这个阅值进行比较。若灰度大于或等于阀值,其灰度值改为255表 示:反之,灰度值改为0。因此,值的大小对二值化的处理效果具有直接 的、决定性的影响。对于同一幅图象而言,采用不可的阅值,二值化处理的 结果差异极为显著。一般面言,阙值越小,二值化后图像的白色区域(亮) 面积多,而黑色区域()面积越少,这意味着一部分较暗的目标被或为背 景。反之,值越大 二值化处理后的白色区域越少,而黑色区域越多,意 味着部分较亮的日标被转变为背景。 灰度直方图(histogran)是灰度级的函数,它表示图象中具有每 种灰度级的象素的个教,反映图象中每种灰度出理的频率。灰度直方图的描 坐标是灰度级,纵坐标是该灰度级出现的须率, 是图象的最基本的统计特 实验原理 常用的阀值确定方法有:双峰法、大津法、选代法等。其中选代法 由于具有明确的收敛性而普遍使用,其过程如下:①选择一个初始阅值的 估算值7,比如图象灰度的均值就是一个较好的初始值:②利用阀值 T把图像分割成两组A和2:③计算区域和2的灰度均值1和 m2:④选择新的阀值工,等于区域A和2的均值▣1和”2的平均 值:⑤重复②一④步,直到均值。1和m2不再变化为止. 此外,数字摄像机随机提供了较为完善的应用接口库,提供的应用 程序接口函数基本上概括了数字摄像机应用程序编程中涉及的各个方面。应 用接口库按照模块分为应用功能模块和扩充功能模块,其中应用功能模块包 括数字摄像机的控制采集图像到内存错误处理等功能扩充功能模块包括图像 数据的转换等功能。在Microsoft的32位Windows操作系统中,数字摄像 机应用接口库直接操作数字摄像机,并提供给用厂 个简单明确的应用找 口。用户在编制自己的应用程序时,可以直接调用这些库函数,来实现指园 的功能。常用库函数有: 参数:int nDevice:摄像机序号由I开始, IV *pHandle:指向摄像机设备句柄
实验二 图像二值化 实验目的 1、掌握利用 VC 采集一幅数字图像的基本方法; 2、加深了解阈值选择对图像结果的影响; 3、加深对图像灰度直方图概念的理解; 4、掌握基本的阈值确定方法。 实验原理 图像的二值化处理,就是讲图像上的各点原有的连续灰度(例如 0~255)置为最小(0)或最大(255),从而将一幅连续灰度变化的图象转 变为一幅黑白图像,且只有黑(灰度值为 0)与白(灰度值为 255),也就 是讲整个图像呈现出明显的黑白效果。经过二值化处理的图像,边缘轮廓非 常鲜明,可以达到突出目标、淡化背景的作用,适合于处理简单的目标和逻 辑判断。 图像二值化的基本方法,是先确定一个阈值,然后将所有象素点的 灰度同这个阈值进行比较。若灰度大于或等于阀值,其灰度值改为 255 表 示;反之,灰度值改为 0。因此,阈值的大小对二值化的处理效果具有直接 的、决定性的影响。对于同一幅图象而言,采用不同的阈值,二值化处理的 结果差异极为显著。一般而言,阈值越小,二值化后图像的白色区域(亮) 面积多,而黑色区域(暗)面积越少,这意味着一部分较暗的目标被改为背 景。反之,阈值越大,二值化处理后的白色区域越少,而黑色区域越多,意 味着部分较亮的目标被转变为背景。 灰度直方图(histogram)是灰度级的函数,它表示图象中具有每 种灰度级的象素的个数,反映图象中每种灰度出现的频率。灰度直方图的横 坐标是灰度级,纵坐标是该灰度级出现的频率,是图象的最基本的统计特 征。 常用的阈值确定方法有:双峰法、大津法、迭代法等。其中迭代法 由于具有明确的收敛性而普遍使用,其过程如下:① 选择一个初始阈值的 估算值 T ,比如图象灰度的均值就是一个较好的初始值;② 利用阈值 T 把图像分割成两组 R1 和 R2;③ 计算区域 R1 和 R2 的灰度均值 m 1 和 m 2;④ 选择新的阈值 T,等于区域 R1 和 R2 的均值 m 1 和 m 2 的平均 值;⑤ 重复②-④步,直到均值 m 1 和 m 2 不再变化为止。 此外,数字摄像机随机提供了较为完善的应用接口库,提供的应用 程序接口函数基本上概括了数字摄像机应用程序编程中涉及的各个方面。应 用接口库按照模块分为应用功能模块和扩充功能模块,其中应用功能模块包 括数字摄像机的控制采集图像到内存错误处理等功能扩充功能模块包括图像 数据的转换等功能。在 Microsoft 的 32 位 Windows 操作系统中,数字摄像 机应用接口库直接操作数字摄像机,并提供给用户一个简单明确的应用接 口。用户在编制自己的应用程序时,可以直接调用这些库函数,来实现指定 的功能。常用库函数有: 函 数:BeginHVDevice 原 型:HVSTATUS __stdcall BeginHVDevice (int nDevice,HHV *pHandle) 参 数:int nDevice:摄像机序号由 1 开始。 HHV *pHandle:指向摄像机设备句柄
版回值:调用成功.返回STATUS OK,否则返回错误代码 说明:开始指定摄像机操作初始化摄像机获得其设备句 分配相应的资源 函数:EndHVDev时ce 原型.HVSTATUS stdcall EndHVDevice HHV hhv 参数:Hhhv:摄像机句标 返回值:调用成功,返回STAT5OK, 否则返回错误代码。 说明:结束指定摄像机操作,释放其设备句柄和资源。 语用函数旅必须停止摄像机工作 如果摄像机正在采集图像时调用函数 则返回STATUS_.IN_O。 函数:HVSetResolution 原型:HVSTATUS stdcall HVSetResolution(HHV hhv. HY RESOLUITION resoultion) 参数:N:摄像机句柄 HW_RESOLUTION resolution:图像分辨率. 返回值:调用成功,返回STTS_OK,否则返回错误代码. 说明:设置摄俊机的分辨率RS0DE01280*1024,RSM0DE1640*512 RFS_M0DE2320*256 函数:HVSet0 utputWindow 原型:HVSTATUS_stdcall HSetOutputwindow(hhv,int nStartX int nStartY,int nWidth,int nHeight) 参数:v:摄像机句柄 int nStartX:输出窗口左上角x坐标数值应为4的倍数 int nStartY:输出窗口左上角y坐标数值应为2的倍数。 int nWidth:输出窗口宽度数值应为4的倍数, int nHeight:输出窗口高度数值应为2的倍数 返回值:调用成功,返回STATUS_OK, 否则返回错误代码 说明:设置图像输出Output窗口,输出窗口是指图像数据从摄像机输出 时起始位置和大小。窗口大小只能等于或小于当前分辨率的大小。 原型:HVSTATUS_stdcall HVSetSnapMode(HHV hhv,,HW_SNAP_MoDE mode): 参数:HHV hhy:摄像机句柄 HV_SNAP_.MODE mode:图像采集模式,CONTINUATION连续方式, TRIGGER外触发方式 TRIGGER_EDGE边缘外触发 TRIGGER_LEVEL电平外触发 返回值:调用成功,返回STATUS_0吓,否则返回错误代码 说明:设置图像的采集方式
返回值:调用成功,返回 STATUS_OK,否则返回错误代码。 说 明:开始指定摄像机操作初始化摄像机获得其设备句柄, 分配相应的资源 函 数:EndHVDevice 原 型:HVSTATUS __stdcall EndHVDevice HHV hhv 参 数:HHV hhv:摄像机句柄 返回值:调用成功,返回 STATUS_OK, 否则返回错误代码。 说 明:结束指定摄像机操作,释放其设备句柄和资源。 调用函数前必须停止摄像机工作, 如果摄像机正在采集图像时调用函数,则返回 STATUS_IN_WORK。 函 数:HVSetResolution 原 型:HVSTATUS __stdcall HVSetResolution(HHV hhv, HV_RESOLUTION resoultion); 参 数:HHV hhv:摄像机句柄。 HV_RESOLUTION resolution:图像分辨率。 返回值:调用成功,返回 STATUS_OK, 否则返回错误代码。 说 明:设置摄像机的分辨率 RES_MODE0 1280*1024,RES_MODE1 640*512, RES_MODE2 320*256 函 数:HVSetOutputWindow 原 型:HVSTATUS __stdcall HVSetOutputWindow (HHV hhv, int nStartX, int nStartY, int nWidth, int nHeight) 参 数:HHV hhv:摄像机句柄。 int nStartX:输出窗口左上角 x 坐标数值应为 4 的倍数。 int nStartY:输出窗口左上角 y 坐标数值应为 2 的倍数。 int nWidth:输出窗口宽度数值应为 4 的倍数。 int nHeight:输出窗口高度数值应为 2 的倍数。 返回值:调用成功,返回 STATUS_OK, 否则返回错误代码。 说 明:设置图像输出 Output 窗口。输出窗口是指图像数据从摄像机输出 时起始位置和大小。窗口大小只能等于或小于当前分辨率的大小。 函 数:HVSetSnapMode 原 型:HVSTATUS __stdcall HVSetSnapMode(HHV hhv,HV_SNAP_MODE mode); 参 数:HHV hhv:摄像机句柄 HV_SNAP_MODE mode:图像采集模式,CONTINUATION 连续方式, TRIGGER 外触发方式,TRIGGER_EDGE 边缘外触发, TRIGGER_LEVEL 电平外触发 返回值:调用成功,返回 STATUS_OK, 否则返回错误代码 说 明:设置图像的采集方式