当前位置:文档之家› 数字图像处理2

数字图像处理2

数字图像处理2
数字图像处理2

使用C/C++进行图像处理

本系列仅针对BMP格式的图像

实现的功能包括读,存,二值化,缩放,反色,均值滤波,中值滤波,增强,腐蚀,膨胀功能:二值化

(运行本程序需要参考“数字图像处理1”)

源码:

/*函数功能:彩色图像转化为灰度图象

输入参数:RGBQUAD** dataOfBmp_src --- 原图像所有像素(以行为序)对应的

RGBAlpha 四元素结构体指针;

RGBQUAD** dataOfBmp_dst --- 转化为灰度图象后的图像所有像素(以行为序)对应的RGBAlpha 四元素结构体指针;

BYTE** dataOfBmp_gray --- 转化为灰度图象后的图像所有像素(以行为序)对应的灰度值;

DWORD width, DWORD height --- 原图像和输出图像的宽度和高度

(以像素为单位)

输出值:没有

*/

void RGB2Gray(RGBQUAD** dataOfBmp_src, RGBQUAD** dataOfBmp_dst, BYTE** dataOfBmp_gray, DWORD width, DWORD height)

{

double gray;

for(DWORD i=0;i

{

for(DWORD j=0;j

{

gray = 0.299*dataOfBmp_src[i][j].rgbRed+0.587*dataOfBmp_src[i][j].rgbGreen+0.114*dataOfBmp_src[i ][j].rgbBlue;

dataOfBmp_gray[i][j] = (BYTE)gray;

dataOfBmp_dst[i][j].rgbRed = (BYTE)gray;

dataOfBmp_dst[i][j].rgbGreen = (BYTE)gray;

dataOfBmp_dst[i][j].rgbBlue = (BYTE)gray;

}

}

}

主函数:

void main()

{

BITMAPFILEHEADER bitHead;

BITMAPINFOHEADER bitInfoHead;

int i, j;

FILE* pfile;

char strFile[50];

printf("please input the .bmp source file name:\n");

scanf("%s",strFile);

pfile = fopen(strFile,"rb");//打开文件

if(pfile!=NULL)

{

printf("file %s open success.\n", strFile);

//读取位图文件头信息

fread(&bitHead,1,sizeof(BITMAPFILEHEADER),pfile);

if(bitHead.bfType != 0x4d42)

{

printf("file is not .bmp file!");

return;

}

showBmpHead(&bitHead);

printf("\n\n");

//读取位图信息头信息

fread(&bitInfoHead,1,sizeof(BITMAPINFOHEADER),pfile);

showBmpInforHead(&bitInfoHead);

printf("\n");

}

else

{

printf("file open fail!\n");

return;

}

RGBQUAD* pRgb=NULL;

if(bitInfoHead.biBitCount < 24)//有调色板

{

//读取调色盘结信息

long nPlantNum = bitInfoHead.biClrUsed;

if(!nPlantNum)

nPlantNum = long(pow(2,double(bitInfoHead.biBitCount))); // Mix color Plant Number;

pRgb=new RGBQUAD[nPlantNum*sizeof(RGBQUAD)];

memset(pRgb,0,nPlantNum*sizeof(RGBQUAD));

int num = fread(pRgb,4,nPlantNum,pfile);

printf("Color Plate Number: %d\n",nPlantNum);

printf("颜色板信息:\n");

showRgbQuan(pRgb, nPlantNum);

}

int width = bitInfoHead.biWidth;

int height = bitInfoHead.biHeight;

//分配内存空间把源图存入内存

int l_width = WIDTHBYTES(width* bitInfoHead.biBitCount);//计算位图的实际宽度并确保它为32的倍数

long nData = height*l_width;

BYTE *pColorData= new BYTE[nData];

memset(pColorData,0,nData);

//把位图数据信息读到数组里

fread(pColorData,1,nData,pfile);

//将位图数据转化为RGB数据

RGBQUAD** dataOfBmp_src=NULL; //用于保存各像素对应的RGB数据

dataOfBmp_src = new RGBQUAD*[height];

for(i=0; i < height;i++)

dataOfBmp_src[i] =new RGBQUAD[width];

if(bitInfoHead.biBitCount<24)//有调色板,即位图为非真彩色

{

int k;

if(bitInfoHead.biBitCount <= 8 && !bitInfoHead.biCompression)

{

int pnum = 8/bitInfoHead.biBitCount;

int mbnum = 8-bitInfoHead.biBitCount;

for(int i=0;i

{

int k0 = (height-i-1)*l_width;//k:取得该像素颜色数据在实际数据数组中的序号

for(int j=0;j

{

BYTE mixIndex= 0;

k = k0+(j/pnum);

mixIndex = pColorData[k];

//mixIndex:提取当前像素的颜色的在颜色表中的索引值

if(bitInfoHead.biBitCount < 8)

{

mixIndex = mixIndex<<((j%pnum)*bitInfoHead.biBitCount);

mixIndex = mixIndex>>mbnum;

}

//将像素颜色数据(RGBA)保存到数组中对应的位置

dataOfBmp_src[i][j].rgbRed = pRgb[mixIndex].rgbRed;

dataOfBmp_src[i][j].rgbGreen = pRgb[mixIndex].rgbGreen;

dataOfBmp_src[i][j].rgbBlue = pRgb[mixIndex].rgbBlue;

dataOfBmp_src[i][j].rgbReserved = pRgb[mixIndex].rgbReserved;

}

}

}

if(bitInfoHead.biBitCount == 16)

{

if(!bitInfoHead.biCompression)

{

for( i=0;i

{

int k0 = (height-i-1)*l_width;

for( j=0;j

{

WORD mixIndex= 0;

k = k0+j*2;

WORD shortTemp;

shortTemp = pColorData[k+1];

shortTemp = shortTemp<<8;

mixIndex = pColorData[k] + shortTemp;

dataOfBmp_src[i][j].rgbRed = pRgb[mixIndex].rgbRed;

dataOfBmp_src[i][j].rgbGreen = pRgb[mixIndex].rgbGreen;

dataOfBmp_src[i][j].rgbBlue = pRgb[mixIndex].rgbBlue;

dataOfBmp_src[i][j].rgbReserved = pRgb[mixIndex].rgbReserved;

}

}

}

}

}

else//位图为24/32位真彩色

{

int k;

int index = 0;

if(bitInfoHead.biBitCount == 16)

{

for( i=0;i

{

int k0 = (height-i-1)*l_width;

for( j=0;j

{

k = k0+j*2;

if(!bitInfoHead.biCompression)//555格式

{

dataOfBmp_src[i][j].rgbBlue=pColorData[k]&0x1F;

dataOfBmp_src[i][j].rgbGreen=(((pColorData[k+1]<<6)&0xFF)>>3)+(pColorData[k]>>5);

dataOfBmp_src[i][j].rgbRed=(pColorData[k+1]<<1)>>3;

dataOfBmp_src[i][j].rgbReserved = 0;

}

}

}

}

if(bitInfoHead.biBitCount == 24 && !bitInfoHead.biCompression)

{

for( i=0;i

{

int k0 = (height-i-1)*l_width;

for( j=0;j

{

k = k0+(j*3);

dataOfBmp_src[i][j].rgbRed = pColorData[k+2];

dataOfBmp_src[i][j].rgbGreen = pColorData[k+1];

dataOfBmp_src[i][j].rgbBlue = pColorData[k];

dataOfBmp_src[i][j].rgbReserved = 0;

}

}

}

if(bitInfoHead.biBitCount == 32 && !bitInfoHead.biCompression)

{

for( i=0;i

{

int k0 = (height-i-1)*l_width;

for( j=0;j

{

k = k0+(j*4);

dataOfBmp_src[i][j].rgbRed = pColorData[k+2];

dataOfBmp_src[i][j].rgbGreen = pColorData[k+1];

dataOfBmp_src[i][j].rgbBlue = pColorData[k];

dataOfBmp_src[i][j].rgbReserved = pColorData[k+3];

}

}

}

}

dataOfBmp_dst = new RGBQUAD*[height];

for(i=0; i

dataOfBmp_dst[i] = new RGBQUAD[width];

BYTE** dataOfBmp_gray=NULL;

dataOfBmp_gray = new BYTE*[height];

for(i=0; i

dataOfBmp_gray[i] = new BYTE[width];

RGB2Gray(dataOfBmp_src, dataOfBmp_dst, dataOfBmp_gray, width, height);

saveBmp(dataOfBmp_dst, width, height);

fclose(pfile);

if (bitInfoHead.biBitCount<24 && pRgb)

{

delete []pRgb;

}

for(i=0; i

if(dataOfBmp_src[i])

delete dataOfBmp_src[i];

if(dataOfBmp_src)

delete dataOfBmp_src;

for(i=0; i

if(dataOfBmp_dst[i])

delete dataOfBmp_dst[i];

if(dataOfBmp_dst)

delete dataOfBmp_dst;

for(i=0; i

if(dataOfBmp_gray[i])

delete dataOfBmp_gray[i];

if(dataOfBmp_gray)

delete dataOfBmp_gray;

if(pColorData)

delete []pColorData;

}

数字图像处理 (2)

数字图像处理的理论基础及发展方向 一、数字图像处理的起源及发展 数字图像处理(Digital Image Processing) 将图像信号转换成数字信号并利用计算机对其进行处理,起源于20 世纪20年代,目前已广泛地应用于科学研究、工农业生产、生物医学工程、航空航天、军事、工业检测、机器人视觉、公安司法、军事制导、文化艺术等,已成为一门引人注目、前景远大的新型学科,发挥着越来越大的作用。数字图像处理作为一门学科形成于20 世纪60 年代初期,早期的图像处理的目的是改善图像的质量,以人为对象,以改善人的视觉效果为目的,首次获得实际成功应用的是美国喷气推进实验室(J PL)并对航天探测器徘徊者7 号在1964 年发回的几千张月球照片使用了图像处理技术,并考虑了太阳位置和月球环境的影响,由计算机成功地绘制出月球表面地图,随后又对探测飞船发回的近十万张照片进行了更为复杂的图像处理,以致获得了月球的地形图、彩色图及全景镶嵌图,为人类登月创举奠定了坚实的基础,也推动了数字图像处理这门学科的诞生。数字图像处理取得的另一个巨大成就是在医学上获得的成果,1972 年英国EMI 公司工程师Ho usfield 发明了用于头颅诊断的X射线计算机断层摄影装置即CT(Computer Tomograph) 。1975 年EMI 公司又成功研制出全身用的CT 装置,获得了人体各个部位鲜明清晰的断层图像。1979 年这项无损伤诊断技术获得了诺贝尔奖,说明它对人类作出了划时代的贡献。随着图像处理技术的深入

发展,从70 年代中期开始,随着计算机技术和人工智能、思维科学研究的迅速发展,数字图像处理向更高、更深层次发展。人们已开始研究如何用计算机系统解释图像,实现类似人类视觉系统理解外部世界。很多国家,特别是发达国家投入更多的人力、物力到这项研究,取得了不少重要的研究成果。其中代表性的成果是70 年代末MIT 的Ma rr 提出的视觉计算理论,这个理论成为计算机视觉领域其后多年的主导思想。图像理解虽然在理论方法研究上已取得不小的进展,但它本身是一个比较难的研究领域,存在不少困难,因人类本身对自己的视觉过程还了解甚少,因此计算机视觉是一个有待人们进一步探索的新领域。正因为如此,图像处理理论和技术受到各界的广泛重视,当前图像处理面临的主要任务是研究新的处理方法,构造新的处理系统,开拓更广泛的应用领域。 二、数字图像处理的研究内容 数字图象处理,就是采用计算机对图象进行信息加工。图象处理的主要内容有:图像的采集、增强、复原、变换、编码、重建、分割、配准、嵌拼、融合、特征提取、模式识别和图象理解。 对图像进行处理(或加工、分析)的主要目的有三个方面: 1)提高图像的视感质量,如进行图像的亮度、彩色变换,增强、抑制某些成分,对图像进行几何变换等,以改善图像的质量。 2)提取图像中所包含的某些特征或特殊信息,这些被提取的特征 或信息往往为计算机分析图像提供便利。提取特征或信息的过程是模式识别或计算机视觉的预处理。提取的特征可以包括很多方面,如频

数字图像处理实验 实验二

实验二MATLAB图像运算一、实验目的 1.了解图像的算术运算在数字图像处理中的初步应用。 2.体会图像算术运算处理的过程和处理前后图像的变化。 二、实验步骤 1.图像的加法运算-imadd 对于两个图像f x,y和 (x,y)的均值有: g x,y=1 f x,y+ 1 (x,y) 推广这个公式为: g x,y=αf x,y+β (x,y) 其中,α+β=1。这样就可以得到各种图像合成的效果,也可以用于两张图像的衔接。说明:两个示例图像保存在默认路径下,文件名分别为'rice.png'和'cameraman.tif',要求实现下图所示结果。 代码: I1 = imread('rice.png'); I2 = imread('cameraman.tif'); I3 = imadd(I1, I2,'uint8'); I4 = imadd(I1, I2,'uint16'); subplot(2, 2, 1), imshow(I1), title('?-ê?í???1'); subplot(2, 2, 2), imshow(I2), title('?-ê?í???2'); subplot(2, 2, 3), imshow(I3), title('8??í?????ê?'); subplot(2, 2, 4), imshow(I4), title('16??í?????ê?'); 结果截图:

2.图像的减法运算-imsubtract 说明: 背景图像可通过膨胀算法得到background = imopen(I,strel('disk',15));,要求实现下图所示结果。 示例代码如下: I1 = imread('rice.png'); background = imerode(I1, strel('disk', 15)); rice2 = imsubtract(I1, background); subplot(2, 2, 1), imshow(I1), title('?-ê?í???'); subplot(2, 2, 2), imshow(background), title('±3?°í???'); subplot(2, 2, 3), imshow(rice2), title('′|àíoóμ?í???'); 结果截图: 3.图像的乘法运算-immultiply

数字图像处理第二章课后习题及中文版解答

数字图像处理(冈萨雷斯版,第二版)课后习题及解答(部分) Ch 2 2.1使用2.1节提供的背景信息,并采用纯几何方法,如果纸上的打印点离眼睛0.2m 远,估计眼睛能辨别的最小打印点的直径。为了简明起见,假定当在黄斑处的像点变得远比视网膜区域的接收器(锥状体)直径小的时候,视觉系统已经不能检测到该点。进一步假定黄斑可用1.5mm × 1.5mm 的方阵模型化,并且杆状体和锥状体间的空间在该阵列上的均匀分布。 解:对应点的视网膜图像的直径x 可通过如下图题2.1所示的相似三角形几何关系得到,即 ()()220.20.014 d x = 解得x =0.07d 。根据2.1节内容,我们知道:如果把黄斑想象为一个有337000个成像单元的正方形传感器阵列,它转换成一个大小580×580成像单元的阵列。假设成像单元之间的间距相等,这表明在总长为1.5 mm 的一条线上有580个成像单元和579个成像单元间隔。则每个成像单元和成像单元间隔的大小为s =[(1.5 mm)/1159]=1.3×10-6 m 。如果在黄斑上的成像点的大小是小于一个可分辨的成像单元,在我们可以认为改点对于眼睛来说不可见。换句话说,眼睛不能检测到以下直径的点:x =0.07d<1.3×10-6m ,即d <18.6×10-6 m 。 下图附带解释:因为眼睛对近处的物体聚焦时,肌肉会使晶状体变得较厚,折射能力也相对提高,此时物体离眼睛距离0.2 m ,相对较近。而当晶状体的折射能力由最小变到最大时,晶状体的聚焦中心与视网膜的距离由17 mm 缩小到14 mm ,所以此图中选取14mm(原书图2.3选取的是17 mm)。 图 题2.1 2.2 当在白天进入一个黑暗的剧场时,在能看清并找到空座位时要用一段时间适应,2.1节(视觉感知要素)描述的视觉过程在这种情况下起什么作用? 解:根据人眼的亮度适应性,1)由于户外与剧场亮度差异很大,因此当人进入一个黑暗的剧场时,无法适应如此大的亮度差异,在剧场中什么也看不见;2)人眼不断调节亮度适应范围,逐渐的将视觉亮度中心调整到剧场的亮度范围,因此又可以看见、分清场景中的物体了。

(完整版)数字图像处理第三版中文答案解析冈萨雷斯

第二章 2.1(第二版是0.2和1.5*1.5的矩形,第三版是0.3和1.5圆形) 对应点的视网膜图像的直径x 可通过如下图题2.1所示的相似三角形几何关系得到,即 ()()017 023 02.x .d = 解得x=0.06d 。根据2.1 节内容,我们知道:如果把中央凹处想象为一个有337000 个成像单元的圆形传感器阵列,它转换成一个大小2 5327.?π成像单元的阵列。假设成像单元之间的间距相等,这表明在总长为1.5 mm (直径) 的一条线上有655个成像单元和654个成像单元间隔。则每个成像单元和成像单元间隔的大小为s=[(1.5 mm)/1309]=1.1×10-6 m 。 如果在中央凹处的成像点的大小是小于一个可分辨的成像单元,在我们可以认为改点对于眼睛来说不可见。换句话说, 眼睛不能检测到以下直径的点: m .d .x 61011060-?<=,即m .d 610318-?< 2.2 当我们在白天进入一家黑暗剧场时,在能看清并找到空座时要用一段时间适应。2.1节描述的视觉过程在这种情况下起什么作用? 亮度适应。 2.3 虽然图2.10中未显示,但交流电的却是电磁波谱的一部分。美国的商用交流电频率是77HZ 。问这一波谱分量的波长是多少? 光速c=300000km/s ,频率为77Hz 。 因此λ=c/v=2.998 * 108(m/s)/77(1/s) = 3.894*106 m = 3894 Km. 2.5 根据图2.3得:设摄像机能看到物体的长度为x (mm),则有:500/x=35/14; 解得:x=200,所以相机的分辨率为:2048/200=10;所以能解析的线对为:10/2=5线对/mm. 2.7 假设中心在(x0,y0)的平坦区域被一个强度分布为: ])0()0[(2 2),(y y x x Ke y x i -+--= 的光源照射。为简单起见,假设区域的反射是恒定 的,并等于1.0,令K=255。如果图像用k 比特的强度分辨率进行数字化,并且眼睛可检测相邻像素间8种灰度的突变,那么k 取什么值将导致可见的伪轮廓? 解:题中的图像是由: ()()()()()[ ]()()[]2 02 02 020********y y x x y y x x e .e y ,x r y ,x i y ,x f -+---+--=?== 一个截面图像见图(a )。如果图像使用k 比特的强度分辨率,然后我们有情况见图(b ),其中()k G 21255+=?。因为眼睛可检测4种灰度突变,因此,k G 22564==?,K= 6。

第二章数字图像处理的基本概念_数字图像处理.

第二章数字图像处理的基本概念 2.3 图像数字化 图像数字化是将一幅画面转化成计算机能处理的形式——数字图像的过程。 模拟图像数字图像正方形点阵 具体来说,就是把一幅图画分割成如上图所示的一个个小区域(像元或 像素),并将各小区域灰度用整数来表示,形成一幅数字图像。它包括采样和 量化两个过程。小区域的位置和灰度就是像素的属性。 单波段、多波段和超波段图像 2.3.1 采样 将空间上连续的图像变换成离散点的操作称为采样。采样间隔和采样孔 径的大小是两个很重要的参数。 当对图像进行实际的抽样时,怎样选择各抽样点的间隔是个非常重要的 问题。关于这一点,图像包含何种程度的细微的浓淡变化,取决于希望忠实反映 图像的程度。 2.3.2 量化 经采样图像被分割成空间上离散的像素,但其灰度是连续的,还不能用 计算机进行处理。 将像素灰度转换成离散的整数值的过程叫量化。一幅数字图像中不同灰 度值的个数称为灰度级数,用G表示。一般来说,G=2∧g,g就是表示图像像素灰 度值所需的比特位数。 一幅大小为M×N、灰度级数为G的图像所需的存储空间,即图像的数据量,大小为M×N×g(bit)

黑白图像:是指图像的每个像素只能是黑或白,没有中间的过渡,故又 称为二值图像。二值图像的像素值为0或1。例如 灰度图像:灰度图像是指每个像素由一个量化的灰度值来描述的图像。 它不包含彩色信息。 彩色图像:彩色图像是指每个像素由R、G、B三原色像素构成的图像, 其中R、B、G是由不同的灰度级来描述的。 2.3.3 量化参数与数字化图像间的关系 数字化方式可分为均匀采样、量化和非均匀采样、量化。所谓“均匀”,指的是采样、量化为等间隔。图像数字化一般采用均匀采样和均匀量化方式。 非均匀采样是根据图象细节的丰富程度改变采样间距。细节丰富的地方,采样间距小,否则间距大。 非均匀量化是对像素出现频度少的间隔大,而频度大的间隔小。 采用非均匀采样与量化,会使问题复杂化,因此很少采用。 一般来说,采样间隔越大,所得图像像素数越少,空间分辨率低,质量差,严重时出现像素呈块状的国际棋盘效应;采样间隔越小,所得图像像素数越多,空间分辨率高,图像质量好,但数据量大。

数字图像处理实验2

Exercise 3 https://www.doczj.com/doc/7a2954536.html,e picture “Fig0401.tif” to do the following questions: ①Read the picture, and write down the Fourier transform program of it. >> f=imread('Fig0401.tif'); >> g=fft2(f); Warning: FFTN on values of class UINT8 is obsolete. Use FFTN(DOUBLE(X)) or FFTN(SINGLE(X)) instead. > In uint8.fftn at 10 In fft2 at 19 >> s=abs(g); >> imshow(s,[])

②Use the function fftshift to center the spectrum. >> fc=fftshift(g); >> imshow(abs(fc),[]) ③Use logarithmic transformation to enhance the centered spectrum. >> s2=log(1+abs(fc)); >> imshow(s2,[])

④Visualize the dealing results of step②and step③. 结果如上 2.Generate a filter function H ①Use function fspecial to generate a ‘laplacian’ spatial domain filter h >> h=fspecial('laplacian',0.5) h= 0.3333 0.3333 0.3333 0.3333 -2.6667 0.3333 0.3333 0.3333 0.3333 ②Use function freqz2 to convert the spatial domain filter h to frequency domain filter H. >>h= freqz2(h);

数字图像处理实验

研究性实验五 一、实验说明: 一个用瓶子装各种工业化学品的装瓶公司听说你成功解决了成像问题,并雇佣你设计一种检测瓶子未装满的方法。当瓶子在传送带上运动,并通过自动装填机和封盖机进行包装时有如下图所示的情景。当液体平面低于瓶颈底部和瓶子肩部的中间点时,认为瓶子未装满。瓶子的横断面上的倾斜部分及侧面定义为瓶子的肩部。瓶子在不断移动,但公司有一个图像系统,装备了有效捕捉静止图像的前端闪光照明设备。所以你可以得到非常清晰的图像。基于以上你得到的资料,提出一个检测未完全装满的瓶子的解决方案。清楚地表述你做的所有设想和很可能对你提出的解决方案产生影响的假设。 二、实验思路分析: 三、实验步骤 步骤一:读入原始图像

步骤二:将图像进行二值化处理 BW = im2bw(I,0.7); 由于原始图像中白色比较明显,瓶身的颜色和背景比较相近,所以直接进行二值化处理,将未装满液体的信息提取出来。 步骤三:将图像聚类后进行连通域的膨胀。 将图像二值化后发现图中存在噪声,选择将图像进行模糊膨胀后再二值化处理,从而去掉小连通域的干扰。 步骤四:重新二值化膨胀后的图像

步骤五:标记连通域,并统计每个连通域的面积。 经统计得到从左到右的连通域面积分别为3495 4398 11212 4398 2573,限定范围,可知11212对应的连通域所对应的瓶子是不符合要求的。 四、实验代码 功能:找出图像中灌装不合格的瓶子。 说明:(1)输入的图像必须是灰度图,否则需要将之格式转换。 (2)图像处理的步骤是:①对灰度图像glass.jpg进行二值化,②进行形态学处理, ③计算白色连通区域的面积和质心等,④通过判断质心的坐标和未装灌的面积得出是否合格。图像处理后五个白色区域面积为: [2374, 2739, 8381, 2739, 1660;] 五个质心的坐标数据: [20.6251,48.0434,138.6046,46.6575,256.2667,84.9748,376.6046,46.6575,484.6181,47.9084;] 通过没有装灌部分的面积大于2900来判定装灌不合格,两个合格的值为2739,其余未照全的部分判断还可以 根据其质心判断,合格的瓶子为46.6575,坐标过大也不合格,这里取50。 源代码: clear all; close all; T = 200; % 全局阈值200时效果要好一些,手动选出的值 %step1 读取和显示原始图像,显示原始图像的直方图 picOP = imread('glass.jpg'); % 读入图像 figure,imshow(picOP),title('原始灰度图像'); % 显示图像 figure, imhist(picOP), title('原始灰度图像直方图'); % 显示原始图像的直方图 % step2 转化为二值图像 picB = picOP; % 复制灰度图像到picB picBW = im2bw(picB,T/255); % 采用全局阈值进行灰度图像转变为二值图像 figure,imshow(picBW),title('全局阈值下二值图像'); % 显示二值图像 % step3 进行形态学操作,转化为有利于处理的图像 picMORPHOLOGY = picBW ; % 复制准备形态学处理 se = strel('square',10); % 结构化元素 fo = imopen(picMORPHOLOGY,se); % 开操作 figure,imshow(fo),title('开运算之后图像'); % 输出开运算之后图像 % step4 计算出各个白色连通区域(未装灌区域)面积和质心坐标

(完整word版)数字图像处理试题集2(精减版)

第一章概述 一.填空题 1. 数字图像是用一个数字阵列来表示的图像。数字阵列中的每个数字,表示数字图像的一个最小单位,称为__________。 5. 数字图像处理包含很多方面的研究内容。其中,________________的目的是根据二维平面图像数据构造出三维物体的图像。 解答:1. 像素5. 图像重建 第二章数字图像处理的基础 一.填空题 1. 量化可以分为均匀量化和________________两大类。 3. 图像因其表现方式的不同,可以分为连续图像和________________两大类。 5. 对应于不同的场景内容,一般数字图像可以分为________________、灰度图像和彩色图像三类。 解答: 1. 非均匀量化 3. 离散图像 5. 二值图像 二.选择题 1. 一幅数字图像是:( ) A、一个观测系统。 B、一个有许多像素排列而成的实体。 C、一个2-D数组中的元素。 D、一个3-D空间的场景。 3. 图像与灰度直方图间的对应关系是:() A、一一对应 B、多对一 C、一对多 D、都不对 4. 下列算法中属于局部处理的是:() A、灰度线性变换 B、二值化 C、傅立叶变换 D、中值滤波 5. 一幅256*256的图像,若灰度级数为16,则该图像的大小是:() A、128KB B、32KB C、1MB C、2MB 6. 一幅512*512的图像,若灰度级数为16,则该图像的大小是:() A、128KB B、32KB C、1MB C、2MB 解答:1. B 3. B 4. D 5. B 6. A 三.判断题 1. 可以用f(x,y)来表示一幅2-D数字图像。() 3. 数字图像坐标系与直角坐标系一致。() 4. 矩阵坐标系与直角坐标系一致。() 5. 数字图像坐标系可以定义为矩阵坐标系。() 6. 图像中虚假轮廓的出现就其本质而言是由于图像的灰度级数不够多造成的。() 10. 采样是空间离散化的过程。() 解答:1. T 3. F 4. F 5. T 6. T 10. T 1、马赫带效应是指图像不同灰度级条带之间在灰度交界处存在的毛边现象(√) 第三章图像几何变换 一.填空题 1. 图像的基本位置变换包括了图像的________________、镜像及旋转。 7. 图像经过平移处理后,图像的内容________________变化。(填“发生”或“不发生”) 8. 图像放大是从小数据量到大数据量的处理过程,________________对许多未知的数据的估计。(填“需要”或“不需要”) 9. 图像缩小是从大数据量到小数据量的处理过程,________________对许多未知的数据的估计。(填“需要”

数字图像处理及MATLAB实现 第二版 复习概要

数字图像处理复习 第一章概述(p1~2) 1. 图像的概念及数字图像的概念。 图-是物体透射或反射光的分布,是客观存在的。像-是人的视觉系统对图的接受在大脑中形成的印象或反映,图像是图和像的有机结合,是客观世界能量或状态以可视化形式在二维平面上的投影。是物体的一个数字表示,是以数字格式存放的图像。 2. 数字图像处理的概念。 数字图像处理又称为计算机图像处理,它是指将图像信号转换成数字信号并利用计算机对其进行处理的过程,以提高图像的实用性。 3. 数字图像处理的优点。 ?精度高 ?再现性好 ?通用性、灵活性强 第二章数字图像处理基础 1. 人眼视觉系统的基本构造(p13) 2. 亮度的适应和鉴别(p15) 人眼对光亮度的适应性非常高,一般情况下跨度达到10的10次方量级,从伸手不见五指到闪光灯强曝光。 3. 光强度与主观亮度曲线。(p15) 4. 图像的数字化及表达。(采样和量化的概念)(p18) 5. 图像采样过程中决定采样空间分辨率最重要的两个参数。(p19) 6. 图像量化过程中量化级数与量化灰度取值范围之间的关系。(?) 7. 像素的相邻领域概念(4领域,8领域)。(p22) 8. 领域空间内像素距离的计算。(欧式距离,街区距离,棋盘距离)(p23) 第三章图像的基本运算(p49练习3.2,3.9 ?) 1. 线性点运算过程中各参数表示的含义(k,b)。(p30) 2. 非线性点运算过程中不同的曲线部分对图像的调整过程。(p31) 3. 会根据实际图像形式识别两幅图像中做了何种调整。

4. 点运算是否会改变图像内像素点之间的空间位置关系?(不会) 点运算是一种像素的逐点运算,它与相邻的像素之间没有运算关系,点运算不会改变图像内像素点之间的空间位置关系 5. 对图像灰度拉伸,非线性拉伸与分段线性拉伸的区别? 分段线性拉伸是通过在不同灰度值区间选择不同的线性方程来实现对不同灰度值区间的扩展与压缩,而非线性拉伸是在整个灰度值范围内采用统一的非线性变换函数,利用函数的数学性质实现对不同灰度值区间的扩展与压缩。 6. 对于代数运算,会根据具体的图像识别做了何种运算。(p33 5种) 7. 对于几何运算,会根据具体的图像形式判断做了何种变换。(p39 5种) 8. 对于灰度重采样,至少理解最邻近插值法的含义。(p46) 9. 图像旋转引起图像失真现象的解释:图像旋转后,由于数字图像的坐标值必须是整数,因此,可能引起图像部分像素点的局部改变。 第四章图像变换 1. 二维图像傅里叶变换具有哪些性质(p54可分性、平移性、周期性、共轭对称性、旋转性、分配律、尺度变换、平均值、卷积定理) 2. 图像频率的概念(何谓图像上的低频区,高频区)。 3. 会根据实际的图像傅里叶变换形式,解释其使用了哪种运算性质。 4. 图像二维傅里叶变换频谱图中,原点处的最大能量尖峰的含义。 图像的能量主要集中在低频区,即频谱图的中央位置。 5. 理解图像重构的概念,能够根据给出的图像,分辨图像重构的方法。 第五章图像增强(书后练习5.4?,5.5) 1. 图像增强最常用的两种方法(空间域增强、频率域增强)。 2. 图像直方图的含义,直方图均衡化的概念及效果。(p78) 3. 会用matlab中直方图均衡化的函数。(p81) 4. 理解空间域滤波增强中模板的概念,理解模板的工作方式。 5. 了解几种最基本的边缘锐化滤波器,知道每种滤波器在处理图像时主要是提取何种边缘特征。(低通滤波器,理想高通滤波器、梯形高器、指数高器,同态滤波器) 第六章图像复原(书后练习6.3,6.4) 1. 图像退化的原因有哪些?(p101)

数字图像处理实验2冈萨雷斯.

实验二灰度直方图及直方图均衡化 一、 实验目的: 1、直方图显示 2、计算并绘制图像直方图 3、直方图均衡化二、实验内容 学习使用函数 imhist(, histeq(, bar(, stem(, plot(, imadjust(,及 title, axis, set 等描述图像工具。 1、直方图显示 显示图 Fig0354(a(einstein_orig.tif,标注图的题目为:EINSTEIN ,作出其直方图,调整参数如下图所示: EINSTEIN

4 2、分别用 bar 和 stem 函数显示直方图 由 h=imhist( 获得直方图;分别用 bar 和 stem 显示直方图 h ,并通过参数调整,改变直方图的显示方式。用 axis 设置轴的最大、最小值(例如:axis([0 255 0 15000];),用 set 设置显示坐标的间隔(例如:set(gca,’xtick ’, 0:50:255)。作出如下的直方图: 00 50

100 150 200 250 3、用 plot 函数显示直方图要求同 2. 12000 1000080006000400020000 0 50 100 150 200 250 300 4、用 imadjust( 函数调整图像对比度,并用 imhist( 查看调整前后直方图的变化。 3 . 2 . 1 . 0 . 4

5、用 histeq( 进行直方图均衡化,并用 imhist( 查看均衡化前后直方图的变化。

4 三、实验要求 将本实验的 10 个图用 MATLAB 显示到屏幕上。程序: i=imread('Fig0354(a(einstein_orig.tif'; imshow(i; title('EINSTEIN'; figure; imhist(i; title('直方图';

数字图像处理实验报告

目录 实验一:数字图像的基本处理操作....................................................................... 错误!未定义书签。:实验目的 .............................................................................................................. 错误!未定义书签。:实验任务和要求..................................................................................................... 错误!未定义书签。:实验步骤和结果..................................................................................................... 错误!未定义书签。:结果分析................................................................................................................. 错误!未定义书签。实验二:图像的灰度变换和直方图变换............................................................... 错误!未定义书签。:实验目的 .............................................................................................................. 错误!未定义书签。:实验任务和要求..................................................................................................... 错误!未定义书签。:实验步骤和结果..................................................................................................... 错误!未定义书签。:结果分析................................................................................................................. 错误!未定义书签。实验三:图像的平滑处理....................................................................................... 错误!未定义书签。:实验目的 .............................................................................................................. 错误!未定义书签。:实验任务和要求..................................................................................................... 错误!未定义书签。:实验步骤和结果..................................................................................................... 错误!未定义书签。:结果分析................................................................................................................. 错误!未定义书签。实验四:图像的锐化处理......................................................................................... 错误!未定义书签。:实验目的 .............................................................................................................. 错误!未定义书签。:实验任务和要求..................................................................................................... 错误!未定义书签。:实验步骤和结果..................................................................................................... 错误!未定义书签。:结果分析................................................................................................................. 错误!未定义书签。

计算机图形_Digital Image Processing, 2nd ed(数字图像处理(第2版))

Digital Image Processing, 2nd ed(数字图像处理(第2 版)) 数据摘要: DIGITAL IMAGE PROCESSING has been the world-wide leading textbook in its field for more than 30 years. As the 1977 and 1987 editions by Gonzalez and Wintz, and the 1992 edition by Gonzalez and Woods, the present edition was prepared with students and instructors in mind. The material is timely, highly readable, and illustrated with numerous examples of practical significance. All mainstream areas of image processing are covered, including a totally revised introduction and discussion of image fundamentals, image enhancement in the spatial and frequency domains, restoration, color image processing, wavelets, image compression, morphology, segmentation, and image description. Coverage concludes with a discussion on the fundamentals of object recognition. Although the book is completely self-contained, this companion web site provides additional support in the form of review material, answers to selected problems, laboratory project suggestions, and a score of other features. A supplementary instructor's manual is available to instructors who have adopted the book for classroom use.

数字图像处理学(第二版)答案

第四章答案 1.图像增强的目的是什么? 其主要目的是使处理后的图像对某种特定的应用来说,比原始图像更适用。2.什么是直方图? 直方图就是反映一副图像中的灰度级与出现这种灰度的概率之间关系的图形。 3.直方图修改的技术基础是什么? 通过变换函数T(r)可以控制图像灰度级的概率密度函数,从而改变图像的灰度层次。 4.在直方图修改技术中采用的变换函数的基本要求是什么? (1)在0≤r≤1区间内,T(r)单值单调增加; (2)对于0≤r≤1,有0≤T(r)≤1。 5.直方图均衡化处理采用何种变换函数? 累计分布函数 6.直方图均衡化处理的结果是什么? 扩展了原始图像的灰度范围 7.假定有64×64大小的图像,灰度为16级,概率分布如下表,试用直方图均衡

00.10.20.30.40.50.60.70.80.91 原图像直方图 S0=0.195 S1=0.335 S2=0.502 S3=0.608 S4=0.681 S5=0.737 S6=0.786 S7=0.827 S8=0.864 S9=0.895 S10=0.922 S11=0.945 S12=0.964 S13=0.981 S14=0.993 S15=1 00.10.20.30.40.50.60.70.80.91 变

换之后 s0≈3/15 s1≈5/15 s2≈8/15 s3≈9/15s4≈10/15 s5≈11/15 s6≈12/15 s7≈12/15 s8≈13/15 s9≈13/15 s10≈14/15 s11≈14/15 s12≈1 s13≈1 s14≈1 s15≈1 00.10.20.30.40.50.60.70.80.91 最后的新直方图 8.(略) 9.直方图均衡化处理的主要步骤是什么? (1)对给定的待处理图像统计其直方图,求出Pr(R); (2)根据统计出的直方图采用累积分布函数做变换 Sk=T(Rk) 求变换后的新灰度; (3)用新灰度代替旧灰度,求出Ps(s),这一步是近似过程,应根据处理目的尽量做到合理,同时把灰度值相等活近似地合并到一起。 10.什么是“简并”现象?如何克服? 变换后的灰度级减少了,这种现象称为简并。 克服:(1)增加像素的比特数; (2)采用灰度间隔放大理论。 11.直方图规定化处理的技术难点是什么?如何解决? 主要困难在于如何构成有意义的直方图。 解决方法:(1)给定一个规定的概率密度函数,如高斯、瑞利等函数; (2)规定一个任意可控制的直方图,其形状可由一些直线组成,得到希望的形状后,将这个函数数字化。 12.试写一段直方图均衡化处理的程序。

数字图像处理作业2

数字图像处理作业 学院: 专业班级: 姓名: 学号:

摘要 MATLAB全称是Matrix Laboratory(矩阵实验室),一开始它是一种专门用于矩阵数值计算的软件,从这一点上也可以看出,它在矩阵运算上有自己独特的特点。实际上MATLAB中的绝大多数的运算都是通过矩阵这一形式进行的。这一特点也就决定了MATLAB在处理数字图像上的独特优势。理论上讲,图像是一种二维的连续函数,然而在计算机上对图像进行数字处理的时候,首先必须对其在空间和亮度上进行数字化,这就是图像的采样和量化的过程。二维图像进行均匀采样,就可以得到一幅离散化成M×N样本的数字图像,该数字图像是一个整数阵列,因而用矩阵来描述该数字图像是最直观最简便的了。而MATLAB的长处就是处理矩阵运算,因此用MATLAB处理数字图像非常的方便。 MATLAB支持五种图像类型,即索引图像、灰度图像、二值图像、RGB图像和多帧图像阵列;支持BMP、GIF、HDF、JPEG、PCX、PNG、TIFF、XWD、CUR、ICO等图像文件格式的读、写和显示。MATLAB对图像的处理功能主要集中在它的图像处理工具箱(Image Processing Toolbox)中。图像处理工具箱是由一系列支持图像处理操作的函数组成,可以进行诸如几何操作、线性滤波和滤波器设计、图像变换、图像分析与图像增强、二值图像操作以及形态学处理等图像处理操作。

一、MATLAB语言的基本操作 MATLAB语言是一种运算纸型的运算语言,其特点就是与平时在运算纸上书写运算的形式相同,这使得它成为一种比较容易掌握的语言;其变量均以矩阵向量形式表示(单独一个数据可以认为是一维向量);其程序语法类似于C语言,只要有一点C语言基础的人可以很快掌握。针对数字图像处理的需要,可以重点掌握以下几个内容:矩阵、向量的输入和操作(包括如何输入一个矩阵,如何产生一个全零全一的矩阵,如何对一个矩阵的行列元素进行读取、写入);矩阵与向量的基本运算(包括加、减、点乘等) 二、MATLAB中图像文件的读/写 (a)imread imread函数用于读入各种图像文件,其一般的用法为 [X,MAP]=imread( ‘filename’, ‘fmt’) 其中,X为读出的图像数据,MAP为颜色表数据(或称调色板,亦即颜色索引矩阵,对灰度图像和RGB彩色图像,该MAP为空矩阵),fmt为图像的格式(可以缺省),filename为读取的图像文件(可以加上文件的路径)。 例:[X,MAP]=imread(‘flowers.tif’, ‘tif’) (b)imwrite imwrite函数用于输出图像,其语法格式为: imwrite(X, MAP, filename, fmt) imwrite(X, MAP, filename, fmt) 按照fmt指定的格式将图像数据矩阵X

数字图像处理(第二版 阮秋琦 阮宇智)的课后习题答案

5.20测量背景的平均值。把图像的所有像素除了十字准线设为平均灰度值。表 示出此图像的傅氏变换G(u,v)。因为十字准线的特点并给出了高度的准确性,我们能构建此模板的图像(相同的尺寸),使用此模板确定原图的灰度级。然后,我们在正确的位置构建十字准线的模型(取决于给定的图像),利用所提供之尺寸和十字准线的灰度级。表示新图像的傅里叶变换F(u,v)。G (u,v)与F(u,v)的比值是一个模糊函数H(u,v)的估计。对于F(u,v)可能消失的值中,我们可以建立一个带阻滤波器,使用图5.27的方法。因为我们知道F(u,v),G(u,v)和H(u,v) 的估计, 我们也可以精确模糊函数的估计,用等式5.8.3的G和H代替,并调整K值以便获得F(u,v)更近似的结果(这个结果可以通过傅里叶反变换估计出来)。在这两种情况下滤波器可以用来模糊图像,如果需要的话。 5.21解决这一问题的关键是下面的函数 其中,是此函数的拉普拉斯(对r的二次导数) 那是, 等于给定的函数。然后我们知道从式4.4得到函数f(x,y) 因此,我们简化了求高斯函数中的傅里叶变换。从表格4.1中,我们从高斯 对可以得到函数的傅里叶变换,其变换形式是 因此,退化函数的傅里叶变换是 5.22这是一个简单的扩展问题。它的目的是为了熟悉维纳滤波器的各种条件。从式5.8.3得

其中 然后 5.23从式5.9.4得 其中,P(u,v)是拉普拉斯算子的傅氏变换。这是至于这个问题,我们可以合理地解答。拉普拉斯算子的变换的表达式通过问题4.19中得到的。然而, 对P(u,v)的代替,这只会增加滤波器的要求,并且不会简化表达式。 5.24因为这个系统是假定的线性和位置不变,因此可以用式子5.5.17。举行。 此外,我们可以用叠加问题,得到了系统响应的F(u,v)和N(u,v)。两个响应的和是完整的响应。首先,仅用F(u,v) 然后,仅仅用N(u,v) 所以

数字图像处理综合作业2

综合作业二 ( 春季学期 ) 一.对X1照片图像增强 (3) 1.1 直方图增强 (3) 1.1.1 直方图拉伸增加对比度 (3) 1.1.2直方图均衡 (4) 1.2 伪彩色增强 (5) 1.2.1等密度分割法 (5) 1.2.2多波段合成伪彩色显示 (8) 二.对x2照片图像增强 (10) 2.1 滤波 (10) 2.1.1各种滤波器 (10) 2.1.2 中值滤波 (12) 2.1.3 二阶butterworth滤波 (14) 2.2 直方图增强 (16) 三.边缘提取及增强 (18) 3.1 对x1边缘提取及复合 (18) 3.1.1 对x1边缘提取 (18) 3.1.2 对x1边缘复合 (19) 3.2对x2边缘提取及复合 (20)

3.2.1 直接对原图x2边缘提取 (20) 3.2.2 去噪后边缘提取 (21) 3.2.3 对x2边缘复合 (22)

一.对X1照片图像增强 1.1 直方图增强 1.1.1 直方图拉伸增加对比度 为了增强图像,观察x1,我们考虑增加图像的对比度,看是否能使图像更清晰。 具体的编程思路是,读入x1图像,运用matlab自带的imadjust函数,对比所得结果,具体程序见附录1.1.1(a),实验结果见图1.1.1(1)。 1.1.1(a) 结论:由图1.1.1(a)对比发现,左右两边基本没有区别,基本没有图像增强效果。我们考虑到运用imadjust函数可以得到原图的负片,即将原灰度图白色的地方变成黑色,黑色的地方变成白色,这种效果可能使X1图像自身对比更鲜明,起到图像增强的作用,具体程序见附录1.1.1(2),实验结果见图1.1.1(b)。

相关主题
文本预览
相关文档 最新文档