资源描述:
《图像分析与处理作业》由会员上传分享,免费在线阅读,更多相关内容在工程资料-天天文库。
1、1试说明bmp图像的文件格式,并用C++语言实现读取8bit灰度图像的代码bmp文件大体上分成四个部分:1.位图文件头BITMAPFILEHEADER2.位图信息头BITMAPINFOHEADER3.调色板Palette4.实际的位图数据ImageData代码:#include#include#include#include#include#include#include#include//unsignedchar*
2、pBmpBuf;〃读入图像数据的指针intbmpWidth;//图像的宽intbmpHeight;//图像的高RGBQUAD*pColoi*Table;〃颜色表指针intbiBitCount;//图像类型,每像索位数//〃读图像的位图数据、宽、高、颜色表及每像素位数等数据进内存,存放在相应的全局变量中boolreadBmp(char*bmpName){FILE*fp=fopen(bmpName,nrbn);//二进制读方式打开指定的图像文件if(fp==O)return0;〃跳过位图文件头结构BITMAPFILEHEADERfseek(fp,sizeof(BITMAPFILEH
3、EADER),0);〃定义位图信息头结构变量,读取位图信息头进内存,存放在变量head'
4、•BITMAPINFOHEADERhead;fread(&head,sizeof(BITMAPINFOHEADER),l,fp);//获取图像宽、高、每像索所占位数等信息bmpWidth=head.biWidth;bmpHeight=head.biHeight;biBitCount=head.biBitCount;//定义变量,计算图像每行像素所占的字节数(必须是4的倍数)intlineByte=(bmpWidth*biBitCount/8+3)/4*4;〃灰度图像有颜色表,且颜色表表项为
5、256if(biBitCount==8){〃申请颜色表所需要的空间,读颜色表进内存pColorTable=newRGBQUAD[256];fread(pColorTable,sizeof(RGBQUAD),256,fp);}〃中请位图数拯所需要的空间,读位图数拯进内存pBmpBuf=newunsignedchar[lineByte*bmpHeight];fread(pBmpBuf,1JineByte*bmpHeight,fp);fclose(fp);//关闭文件return1;//读取文件成功2简述HSV颜色模型,以及其优点:HSV模型,基于人类对颜色的感觉(1)色度H是从物体
6、反射或透过物体传播的颜色。在0到360度的标准色轮上,色度是按位置度量的。在通常的使用屮,色度是由颜色名称标识的,比如红、橙或绿色。红色对应于角度0,绿色对应于角度120,蓝色对应于角度240。(1)饱和度S,冇时也称彩度,是指颜色的强度或纯度。饱和度表示色相屮灰成分所占的比例,用从0%(灰色)到100%(完全饱和)的百分比来度量。在标准色轮上,从中心向边缘饱和度是递增的。(2)亮度V是颜色的相对明暗程度,通常用从0%(黑)到100%(白)的百分比來度量。HSV颜色模型的优点•当采用RGB(或者CMY)颜色模型吋,改变某一颜色的属性,比如改变色调就必须同时改变R、G、B(或者C
7、、M、Y)三个坐标;而采用HSV颜色模型时只需改变H坐标。也就是说,HSV颜色模型中的三个坐标是独立的。■HSV颜色模型构成的是一个均匀的颜色空间,采用线性的标尺,彩色Z间感觉上的距离与HSV颜色模型坐标上点的欧儿里德距离成正比3边缘检测主要有哪些方法,其基本理论依据是什么?定义:边缘是指其周围象素的灰度有阶跃变化(stepedge)或屋顶状变化(roofedge)的象素、常存在于口标与背景之间、口标与口标之间、口标与其影子之间。分析手段:因为灰度的变化,可以反映为导数;因此,根据边缘的形状,可以通过求导的方法來寻求边缘。边缘的参数包扌舌:边缘强度(edgeintensity)
8、和边缘方向(edgedirection)0算法的主要步骤:1滤波2增强3检测4定位。1roberts算子定义为:1Roberts算子定义为:_10_■or0-1-101sobel算了平均、微分对噪声有抑制作用.水平和垂直掩模为:-1-2-1000121-101-202-101加权(距离越近,贡献越大)1prewitt算了2Prew吐算子水平和垂直掩模为:000111一101-101一101_平均、微分对噪声有抑制作用.边宽象素,如:255255255255255255255255255255