数字图像处理试题库Word格式.docx

上传人:b****2 文档编号:5366619 上传时间:2023-05-05 格式:DOCX 页数:48 大小:278.51KB
下载 相关 举报
数字图像处理试题库Word格式.docx_第1页
第1页 / 共48页
数字图像处理试题库Word格式.docx_第2页
第2页 / 共48页
数字图像处理试题库Word格式.docx_第3页
第3页 / 共48页
数字图像处理试题库Word格式.docx_第4页
第4页 / 共48页
数字图像处理试题库Word格式.docx_第5页
第5页 / 共48页
数字图像处理试题库Word格式.docx_第6页
第6页 / 共48页
数字图像处理试题库Word格式.docx_第7页
第7页 / 共48页
数字图像处理试题库Word格式.docx_第8页
第8页 / 共48页
数字图像处理试题库Word格式.docx_第9页
第9页 / 共48页
数字图像处理试题库Word格式.docx_第10页
第10页 / 共48页
数字图像处理试题库Word格式.docx_第11页
第11页 / 共48页
数字图像处理试题库Word格式.docx_第12页
第12页 / 共48页
数字图像处理试题库Word格式.docx_第13页
第13页 / 共48页
数字图像处理试题库Word格式.docx_第14页
第14页 / 共48页
数字图像处理试题库Word格式.docx_第15页
第15页 / 共48页
数字图像处理试题库Word格式.docx_第16页
第16页 / 共48页
数字图像处理试题库Word格式.docx_第17页
第17页 / 共48页
数字图像处理试题库Word格式.docx_第18页
第18页 / 共48页
数字图像处理试题库Word格式.docx_第19页
第19页 / 共48页
数字图像处理试题库Word格式.docx_第20页
第20页 / 共48页
亲,该文档总共48页,到这儿已超出免费预览范围,如果喜欢就下载吧!
下载资源
资源描述

数字图像处理试题库Word格式.docx

《数字图像处理试题库Word格式.docx》由会员分享,可在线阅读,更多相关《数字图像处理试题库Word格式.docx(48页珍藏版)》请在冰点文库上搜索。

数字图像处理试题库Word格式.docx

*pbyRed=gray;

//将取到最大值赋给像素红分量

}

for(intj=height/3;

2*height/3;

j++)//每行

DibWidth;

i++)//每列

inta=*p_data;

//获得当前点值

*p_data=255-a;

//取反

p_data++;

//指向下一指针

for(intj=2*height/3;

height;

j++)//每行

BYTE*pbydata=p_data++;

BYTEa=*pbydata;

//传给暂时变量

*pbydata=(a>

128)?

a:

(255-a);

//调节

2.目的物体轮廓提取。

(1)获取原图像像素首地址,及图像高和宽;

(2)开辟一块内存缓冲区,存储解决后图像像素;

(3)计算图像平均灰度值,以平均灰度值作为阈值T;

(4)对图像进行二值化预解决,像素灰度值不不大于T置白,否则置黑;

(5)将像素点8邻域像素读入数组中,如果8个邻域像素都和中心点相似,在内存缓

区将该像素点置白,否则保持不变;

(6)重复执行(3),对每一种像素进行解决;

(7)将解决后图像数据复制到原图像中。

voidBingXingBianJieDib:

Lunkuotiqu()

LPBYTEp_data,lpSrc;

intwide,height;

inti,j;

intn1,n2,n3,n4,n5,n6,n7,n8;

lpSrc=this->

GetData();

p_data=lpSrc;

GetWidth();

GetHeight();

//计算图像平均灰度值T,再进行二值化预解决,像素灰度值不不大于T置白,否则置黑。

for(j=0;

j++)//对图像进行二值化预解决

{

for(i=0;

wide;

i++)

{

if(*p_data>

128)

*p_data=255;

else

*p_data=0;

p_data++;

}

}

p_data=lpSrc;

LPBYTEtemp=newBYTE[wide*height];

memset(temp,255,sizeof(temp));

for(j=1;

height-1;

j++)

for(i=1;

wide-1;

if(p_data[j*wide+i]==0)

temp[j*wide+i]=0;

n1=p_data[(j+1)*wide+i-1];

n2=p_data[(j+1)*wide+i];

n3=p_data[(j+1)*wide+i+1];

n4=p_data[j*wide+i-1];

n5=p_data[j*wide+i+1];

n6=p_data[(j-1)*wide+i-1];

n7=p_data[(j-1)*wide+i];

n8=p_data[(j-1)*wide+i+1];

//如果相邻八个点都是黑点

if(n1+n2+n3+n4+n5+n6+n7+n8==0)

temp[j*wide+i]=255;

memcpy(lpSrc,temp,wide*height);

deletetemp;

3.编程实现分别记录24位真彩色图像R、G、B直方图。

本程序功能是对24位真彩色图像R、G、B分别进行直方图记录,R、G、B分布密度分别放在数组tongji_RED[],tongji_GREEN[],tongji_BLUE[]里。

请将程序代码补充完整。

voidHuiDuBianHuanDib:

ZhiFangTu(float*tongji_RED,float*tongji_GREEN,float*tongji_BLUE)

inti,j;

LPBYTEp_data;

4.依照构造

编程实现图像闭运算。

(1)得原图像首地址及图像宽和高。

(图像已经二值化,背景为白,物体为黑)。

(2)辟一块内存缓冲区,并初始化为255。

(3)定义一种构造数组B[9]。

B[9]=

(4)为防越界,不解决最左边、最右边、最上边和最下边四边像素,从第2行第2列开始进行闭运算。

(5)循环环节4,直到解决完原图所有像素点。

(6)将成果从内存复制到原图数据区。

voidFuShiYuPengZhangDib:

Onfushi()

inti,j,m,n;

LPBYTEp_data;

LPBYTElpSrc;

LPBYTElpDst;

LPBYTEtemp;

p_data=GetData();

LONGwide=GetWidth();

LONGheight=GetHeight();

temp=newBYTE[wide*height];

lpDst=(LPBYTE)temp;

memset(lpDst,(BYTE)255,wide*height);

//3×

3构造元素

intB[9]={1,0,1,

0,0,0,

1,0,1};

//使用全方向构造元素进行腐蚀

for(j=1;

j<

height-1;

for(i=1;

i<

wide-1;

//由于使用3×

3构造元素,为防止越界,因此不解决最左、右、上、下四//边像素

//指向源图像倒数第j行,第i个象素指针

lpSrc=(unsignedchar*)(p_data+wide*j+i);

//指向目的图像倒数第j行,第i个象素指针

lpDst=(unsignedchar*)(temp+wide*j+i);

//目的图像中当前点先赋成黑色

*lpDst=0;

//如果源图像中3×

3构造元素相应位置有白点

//则将目的图像中(0,0)点赋成白色

for(m=0;

m<

3;

m++)

for(n=0;

n<

n++)

if(B[m+n]==1)

continue;

if(*(lpSrc+(1-m)*wide+(n-1))>

128)

{

*lpDst=255;

break;

}

}

memcpy(p_data,temp,wide*height);

deletetemp;

5.编程实现图像渐隐。

显示一幅位图,像素浓度由亮到暗,逐渐削弱,直至全黑。

请写出渐隐程序代码。

voidCDynSplitView2:

OnJianyin()

CDC*pDC=GetDC();

CRectrect(0,0,1000,1000);

CBrushbrush(RGB(255,255,255));

pDC->

FillRect(&

rect,&

brush);

clearmem();

CDSplitDoc*pDoc=GetDocument();

ASSERT_VALID(pDoc);

if(!

pDoc->

statedoc&

&

state2==1)

BYTE*pBitmapData=CDibNew1->

LPBITMAPINFOpBitmapInfo=CDibNew1->

GetInfo();

intbitmapHeight=CDibNew1->

GetHeight();

intbitmapWidth=CDibNew1->

GetWidth();

if(CDibNew1->

GetRGB())//Hasacolortable

CPalette*hPalette=CreateBitmapPalette(CDibNew1);

CPalette*hOldPalette=pDC->

SelectPalette(hPalette,true);

RealizePalette();

LPBYTEtemp,temp1,temp2;

temp=newBYTE[CDibNew1->

GetHeight()*CDibNew1->

GetHeight()];

memset(temp,0,CDibNew1->

GetHeight());

for(intn=0;

n<

=256;

n++)

temp1=temp

temp2=pBitmapData

bitmapHeight;

j++)

{

for(inti=0;

bitmapWidth;

i++)

*temp1=(*temp2)*n/256;

temp1++;

temp2++;

//显示图像

StretchDIBits(pDC->

GetSafeHdc(),0,0,bitmapWidth,bitmapHeight,

0,0,bitmapWidth,bitmapHeight,temp,pBitmapInfo,

DIB_RGB_COLORS,SRCCOPY);

Sleep(0.0005);

SelectPalette(hOldPalette,true);

DeleteObject(hPalette);

}

6.对灰度图像进行N×

N十字型中值滤波解决。

规定:

(1)获得图像大小、数据区,并把数据区复制到缓冲区中;

(2)获得N值;

(3)循环获得各点像素值;

(4)对以该点为中心N*N十字型屏蔽窗口涉及各像素值进行排序,得到中间值;

(5)把该点像素值置为中间值;

(6)把缓冲区中改动数据复制到原数据区中。

voidZaoShengXiaoChuDib:

nnzhong(intn)

DWORDsize;

size=GetSize();

BYTE*p_temp=newBYTE[size];

memset(p_temp,255,size);

intyy,xx,n2,nn,chuo,chg,m,medi,madom,mado[1000];

if(n<

3||n%2!

=1)

AfxMessageBox("

请输入一种不不大于等于3奇数"

);

if(n>

=3&

n%2==1)

n2=(n-1)/2;

nn=n*n;

chuo=(nn-1)/2;

GetWidth();

GetHeight();

for(intj=n2;

height-n2;

for(inti=n2;

wide-n2;

m=0;

for(yy=j-n2;

yy<

=j+n2;

yy++)

mado[m]=p_data[yy*wide+i];

m++;

for(xx=i-n2;

xx<

=i+n2;

xx++)

if(xx==i)continue;

mado[m]=p_data[j*wide+xx];

//把mado[m]中值按下降顺序用冒泡法排序

do{

chg=0

for(m=0;

m<

nn-1;

m++)

if(mado[m]<

mado[m+1])

{

madom=mado[m];

mado[m]=mado[m+1];

mado[m+1]=madom;

chg=1;

}

}while(chg==1);

medi=mado[chuo];

p_temp[j*wide+i]=medi;

memcpy(p_data,p_temp,size);

deletep_temp;

7.编程实现灰度图像伪彩色解决。

修改颜色索引表,将灰度图像显示成彩色图像。

将灰度区间表达到如下5种典型颜色:

[0,50]表达到:

黑色;

[51,100]表达到:

蓝色;

[101,150]表达到:

红色;

[151,200]表达到:

黄色;

[201,255]表达到:

绿色。

CPalette*CDynSplitView2:

CreateBitmapPalette(CDib*pBitmap)

struct

WORDVersion;

WORDNumberOfEntries;

PALETTEENTRYaEntries[256];

}palette={0x300,256};

LPRGBQUADpRGBTable=pBitmap->

GetRGB();

UINTnumberOfColors=pBitmap->

GetNumberOfColors();

for(UINTx=0;

x<

numberOfColors;

++x)

//请修改颜色表

if((x>

0)&

(x<

50))

51)&

100))

101)&

150))

151)&

200))

201)&

255))

palette.aEntries[x].peRed=pRGBTable[x].rgbRed;

palette.aEntries[x].peGreen=pRGBTable[x].rgbGreen;

palette.aEntries[x].peBlue=pRGBTable[x].rgbBlue;

palette.aEntries[x].peFlags=0;

//hPalette已在视类定义

hPalette.CreatePalette((LPLOGPALETTE)&

palette);

return&

hPalette;

8.中值滤波是指将当前像元窗口(或领域)中所有像元灰度由小到大进行排序,中间值作为当前像元输出值,试编程实现3×

3中值滤波。

原始图像某些数据为:

LPBYTEp_data;

p_data=GetData();

LONGwide=GetWidth();

LONGheight=GetHeight();

答:

intm;

for(intj=1;

j++)

for(inti=1;

i++)

{

for(intyy=j-1;

=j+1;

yy++)

for(intxx=i-1;

=i+1;

xx++)

{

intmado[m]=p_data[yy*wide+xx];

m++;

do

{

intchg=0;

for(m=0;

8;

m++)

{

if(mado[m]<

{

intmadom=mado[m];

mado[m]=mado[m+1];

mado[m+1]=madom;

chg=1;

}

}

}while(chg==1)

intmedi=mado[4];

p_data[j*wide+i]=medi;

9.完毕对一幅宽为wide,高为height灰度图像进行垂直镜像变换程序。

LPBYTElpSrc;

//指向源图像指针

//指向要复制区域指针

LPBYTElpDst;

//指向复制图像指针

longheight=this->

//图像高与宽

longwide=this->

答:

LPBYTEtemp;

LONGi;

//循环变量

LONGj;

temp=newBYTE[wide*height];

//暂时分派内存,以保存一行图像

//针对上半图像进行操作

for(i=0;

wide;

{

for(j=0;

{

lpSrc=(LPBYTE)p_data+wide*j+i;

lpDst=(LPBYTE)temp+wide*(height-j-1)+i;

*lpDst=*lpSrc;

}

memcpy(p_data,temp,wide*height);

//释放内存

deletetemp;

10.将图像中红色球体进行左右、上下、对称复制。

原图解决后图像

voidTuXianFuZhiDib:

Onfuzhi()

LPBYTEp_data;

11.编程实现24位彩色图像进行解决。

将24位彩色图像平均提成三个等高区域,对这三个区域分别进行灰度化解决、逆反解决、曝光解决。

(1)对第一种区域进行灰度变换。

(2)对第二个区域进行逆反解决。

(3)对第三个区域进行曝光解决。

MakegChange()

BYTE*p_data;

intwide,height,DibWidth;

p_data=this->

wide=this->

DibWidth=this->

for(intj=0;

height/3;

j++)

for(inti=0;

12.彩色图像RGB颜色模型转换为YUV颜色模型。

YUV颜色模式,这是电视系统中惯用颜色模式,即电视中所谓分量(Component)信号。

该模式1个亮度信号Y和两个色差信号U、V构成。

它是运用了人眼对亮度信号敏感而对色度信号相对不敏感特点,将RGB颜色通过亮度信号公式Y=0.29R+0.50G+0.11B转换为一种亮度信号Y和两个色差分量信号U、V,即对色差信号进行了频带压缩。

RGB变换为YUV坐标转换公式如下:

Y0.2990.5870.114R

U=-0.1678-0.33130.5G

V0.5-0.4187-0.0813B

将转换后YUV信

展开阅读全文
相关资源
猜你喜欢
相关搜索
资源标签

当前位置:首页 > 经管营销 > 公共行政管理

copyright@ 2008-2023 冰点文库 网站版权所有

经营许可证编号:鄂ICP备19020893号-2