數(shù)字圖像處理試題目庫_第1頁
數(shù)字圖像處理試題目庫_第2頁
數(shù)字圖像處理試題目庫_第3頁
數(shù)字圖像處理試題目庫_第4頁
數(shù)字圖像處理試題目庫_第5頁
已閱讀5頁,還剩22頁未讀, 繼續(xù)免費(fèi)閱讀

下載本文檔

版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進(jìn)行舉報(bào)或認(rèn)領(lǐng)

文檔簡介

1、.試題庫一、填空題:1彩色圖像的灰度化處理,將真彩色圖像轉(zhuǎn)化成256色灰度圖像。要求:轉(zhuǎn)換關(guān)系為:Gray(i,j)=0.11R(i,j)+0.59G(i,j)+0.3B(i,j)(1) 獲取原圖像像素的首地址,及圖像的高度和寬度; (2) 得到像素的藍(lán)、綠、紅的三個(gè)分值;(3) 按照公式要求,計(jì)算Gray(i,j);(4) 將該值返回給藍(lán)、綠、紅三個(gè)分量。void MakeColorDib:MakegGray() BYTE *p_data; int wide,height,DibWidth; p_data=this->GetData (); wide=this->GetWidth

2、 (); height=this->GetHeight (); DibWidth=this->GetDibWidthBytes(); for(int j=0;j< height;j+ )for(int i=0;i< DibWidth;i+=3)BYTE* pbyBlue = p_data+; /得到藍(lán)色值BYTE* pbyGreen = p_data+; /得到綠色值BYTE* pbyRed = p_data+; /得到紅色值BYTE r = *pbyRed; BYTE g = *pbyGreen; BYTE b = *pbyBlue; gray =0.11*r+0.5

3、9*g+0.3*b *pbyBlue = gray; /將取到的最大值賦給像素的藍(lán)分量*pbyGreen = gray; /將取到的最大值賦給像素的綠分量*pbyRed = gray; /將取到的最大值賦給像素的紅分量for(int j= height/3;j<2*height/3;j+) / 每行for(int i=0;i<DibWidth;i+) / 每列int a=*p_data; /取得當(dāng)前點(diǎn)的值*p_data=255-a; /取反p_data+; /指向下一指針 for(int j=2*height/3;j<height;j+) / 每行for(int i=0;i&

4、lt;DibWidth;i+) / 每列BYTE* pbydata = p_data+; /取得當(dāng)前點(diǎn)的值BYTE a=*pbydata; /傳給臨時(shí)變量*pbydata=(a>128)?a:(255-a); /調(diào)整2目標(biāo)物體的輪廓提取。要求:(1)獲取原圖像像素的首地址,及圖像的高和寬;(2)開辟一塊內(nèi)存緩沖區(qū),存儲(chǔ)處理后的圖像像素;(3)計(jì)算圖像的平均灰度值,以平均灰度值作為閾值T;(4)對圖像進(jìn)行二值化預(yù)處理,像素灰度值大于T的置白,否則置黑;(5)將像素點(diǎn)的8鄰域像素讀入數(shù)組中,如果8個(gè)鄰域像素都和中心點(diǎn)相同,在內(nèi)存緩區(qū)將該像素點(diǎn)置白,否則保持不變;(6)重復(fù)執(zhí)行(3),對每一個(gè)

5、像素進(jìn)行處理;(7)將處理后的圖像數(shù)據(jù)復(fù)制到原圖像中。void BingXingBianJieDib:Lunkuotiqu()LPBYTE p_data, lpSrc; int wide,height; int i,j; int n1,n2,n3,n4,n5,n6,n7,n8; lpSrc=this->GetData();p_data=lpSrc;wide=this->GetWidth ();height=this->GetHeight ();/計(jì)算圖像的平均灰度值T,再進(jìn)行二值化預(yù)處理,像素灰度值大于T的置白,否則置黑。for(j=0;j<height;j+) /對圖

6、像進(jìn)行二值化預(yù)處理for( i=0;i<wide;i+) if(*p_data>128) *p_data=255;else *p_data=0; p_data+; p_data=lpSrc; LPBYTE temp=new BYTEwide*height; memset( temp,255,sizeof( temp); for(j=1;j<height-1;j+)for(i=1;i<wide-1;i+) if(p_dataj*wide+i=0) tempj*wide+i=0; n1= p_data(j+1)*wide+i-1; n2= p_data(j+1)*wide+

7、i; n3= p_data(j+1)*wide+i+1; n4= p_dataj*wide+i-1; n5= p_dataj*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; /如果相鄰的八個(gè)點(diǎn)都是黑點(diǎn) if(n1+n2+n3+n4+n5+n6+n7+n8=0) tempj*wide+i=255; memcpy(lpSrc, temp,wide*height); delete temp; 3編程實(shí)現(xiàn)分別統(tǒng)計(jì)24位真彩色圖像R、G、B直方圖。要求:本程序功能是對24位真彩色圖

8、像的R、G、B分別進(jìn)行直方圖統(tǒng)計(jì),R、G、B分布密度分別放在數(shù)組tongji_RED , tongji_GREEN , tongji_ BLUE 里。請將程序代碼補(bǔ)充完整。void HuiDuBianHuanDib:ZhiFangTu(float *tongji_RED, float *tongji_GREEN, float *tongji_BLUE)int i,j;int wide,height; LPBYTE p_data; p_data=this->GetData();height=this->GetHeight ();wide=this->GetWidth ();4根

9、據(jù)結(jié)構(gòu)編程實(shí)現(xiàn)圖像的閉運(yùn)算。要求:(1)得原圖像的首地址及圖像的寬和高。(圖像已經(jīng)二值化,背景為白,物體為黑)。(2)辟一塊內(nèi)存緩沖區(qū),并初始化為255。(3)定義一個(gè)結(jié)構(gòu)數(shù)組B9。B 9 = (4)為防越界,不處理最左邊、最右邊、最上邊和最下邊四邊的像素,從第2行第2列開始進(jìn)行閉運(yùn)算。(5)循環(huán)步驟4,直到處理完原圖的全部像素點(diǎn)。(6)將結(jié)果從內(nèi)存復(fù)制到原圖的數(shù)據(jù)區(qū)。void FuShiYuPengZhangDib:Onfushi() int i,j,m,n;LPBYTE p_data;LPBYTElpSrc;LPBYTElpDst;LPBYTEtemp;p_data = GetData()

10、;LONG wide= GetWidth();LONG height =GetHeight();temp =new BYTEwide*height;lpDst = (LPBYTE)temp;memset(lpDst, (BYTE)255, wide * height);/ 3×3的結(jié)構(gòu)元素int B9 = 1, 0, 1,0, 0, 0,1, 0, 1;/ 使用全方向的結(jié)構(gòu)元素進(jìn)行腐蝕for (j = 1; j < height - 1; j+)for (i = 1; i < wide - 1; i+)/ 由于使用3×3的結(jié)構(gòu)元素,為防止越界,所以不處理最左、右

11、、上、下四/邊的像素/ 指向源圖像倒數(shù)第j行,第i個(gè)象素的指針lpSrc = (unsigned char *)(p_data + wide * j + i);/ 指向目標(biāo)圖像倒數(shù)第j行,第i個(gè)象素的指針lpDst = (unsigned char *)(temp + wide * j + i);/ 目標(biāo)圖像中的當(dāng)前點(diǎn)先賦成黑色*lpDst = 0;/ 如果源圖像中3×3結(jié)構(gòu)元素對應(yīng)位置有白點(diǎn)/ 則將目標(biāo)圖像中的(0,0)點(diǎn)賦成白色for (m = 0; m < 3; m+)for (n = 0; n < 3; n+)if (Bm + n = 1)continue;if

12、(*(lpSrc + (1 - m) * wide +(n - 1) ) > 128)*lpDst = 255;break;memcpy(p_data, temp, wide * height);delete temp;5編程實(shí)現(xiàn)圖像的漸隱。要求:顯示一幅位圖,像素濃度由亮到暗,逐漸減弱,直至全黑。請寫出漸隱的程序代碼。void CDynSplitView2:OnJianyin() CDC *pDC=GetDC();CRect rect(0,0,1000,1000);CBrush brush(RGB(255,255,255);pDC->FillRect(&rect,&

13、;brush);clearmem();CDSplitDoc* pDoc = GetDocument();ASSERT_VALID(pDoc);if(!pDoc ->statedoc&&state2=1 ) BYTE* pBitmapData = CDibNew1->GetData(); LPBITMAPINFO pBitmapInfo = CDibNew1->GetInfo(); int bitmapHeight= CDibNew1->GetHeight(); int bitmapWidth = CDibNew1->GetWidth();if (C

14、DibNew1->GetRGB() / Has a color tableCPalette* hPalette=CreateBitmapPalette(CDibNew1);CPalette * hOldPalette =pDC->SelectPalette(hPalette, true);pDC->RealizePalette();LPBYTE temp,temp1,temp2;temp=new BYTECDibNew1->GetHeight()*CDibNew1->GetHeight();memset (temp,0,CDibNew1->GetHeight

15、()*CDibNew1->GetHeight();for(int n=0;n<=256 ; n+ )temp1=temp temp2=pBitmapData for(int j=0;j<bitmapHeight ; j+) for(int i=0;i< bitmapWidth; i+ ) *temp1=(*temp2)*n/256;temp1+; temp2+; /顯示圖像:StretchDIBits(pDC->GetSafeHdc(),0, 0, bitmapWidth, bitmapHeight,0, 0, bitmapWidth, bitmapHeight,

16、temp,pBitmapInfo,DIB_RGB_COLORS, SRCCOPY);Sleep(0.0005);pDC->SelectPalette(hOldPalette, true);:DeleteObject(hPalette);delete temp; 6對灰度圖像進(jìn)行N×N十字型中值濾波處理。要求:(1)取得圖像大小、數(shù)據(jù)區(qū),并把數(shù)據(jù)區(qū)復(fù)制到緩沖區(qū)中;(2)取得N值;(3)循環(huán)取得各點(diǎn)像素值;(4)對以該點(diǎn)為中心的N*N十字型屏蔽窗口包括的各像素值進(jìn)行排序,得到中間值;(5)把該點(diǎn)像素值置為中間值;(6)把緩沖區(qū)中改動(dòng)的數(shù)據(jù)復(fù)制到原數(shù)據(jù)區(qū)中。void ZaoSheng

17、XiaoChuDib:nnzhong(int n)DWORD size;size=GetSize();BYTE* p_temp=new BYTE size;memset(p_temp,255,size);int yy,xx,n2,nn,chuo,chg,m,medi,madom,mado1000;BYTE *p_data; int wide,height; if(n<3|n%2!=1)AfxMessageBox("請輸入一個(gè)大于等于3的奇數(shù)");if(n>=3&&n%2=1)n2=(n-1)/2;nn=n*n;chuo=(nn-1)/2;p_da

18、ta=this->GetData();wide=this->GetWidth(); height=this->GetHeight(); for(int j=n2;j<height-n2;j+)for(int i=n2;i<wide-n2;i+)m=0;for(yy=j-n2;yy<=j+n2;yy+)madom=p_datayy*wide+i;m+;for(xx=i-n2;xx<=i+n2;xx+)if(xx=i)continue;madom=p_dataj*wide+xx;m+;/把madom中的值按下降順序用冒泡法排序do chg= 0 for(m

19、=0;m< nn-1 ; m+ )if(madom<madom+1) madom=madom; madom=madom+1; madom+1=madom; chg=1; while(chg=1); medi=madochuo; p_tempj*wide+i=medi; memcpy(p_data,p_temp,size);delete p_temp;7編程實(shí)現(xiàn)灰度圖像的偽彩色處理。要求:修改顏色索引表,將灰度圖像顯示成彩色圖像。將灰度區(qū)間表示成如下5種典型的顏色:0 ,50 表示成:黑色; 51,100 表示成:藍(lán)色;101,150 表示成:紅色; 151,200 表示成:黃色;2

20、01,255 表示成:綠色。CPalette * CDynSplitView2:CreateBitmapPalette(CDib * pBitmap)structWORD Version;WORD NumberOfEntries;PALETTEENTRY aEntries256; palette = 0x300, 256 ;LPRGBQUAD pRGBTable = pBitmap->GetRGB();UINT numberOfColors = pBitmap->GetNumberOfColors();for(UINT x=0; x<numberOfColors; +x)/請

21、修改顏色表if(x>0)&&(x<50) if(x>51) &&(x<100) if(x>101)&&(x<150) if(x>151)&&(x<200) if(x>201)&&(x<255) palette.aEntriesx.peRed =pRGBTablex.rgbRed;palette.aEntriesx.peGreen =pRGBTablex.rgbGreen;palette.aEntriesx.peBlue =pRGBTablex.rgbBlu

22、e;palette.aEntriesx.peFlags = 0;/ hPalette已在視類定義hPalette.CreatePalette(LPLOGPALETTE)&palette);return &hPalette;8.中值濾波是指將當(dāng)前像元的窗口(或領(lǐng)域)中所有像元灰度由小到大進(jìn)行排序,中間值作為當(dāng)前像元的輸出值,試編程實(shí)現(xiàn)3×3中值濾波。原始圖像的部分?jǐn)?shù)據(jù)為:LPBYTE p_data;p_data = GetData();LONG wide= GetWidth();LONG height =GetHeight();答:int m;for(int j=1;j

23、<height;j+) for(int i=1;i<wide;i+) for(int yy=j-1;yy<=j+1;yy+) for(int xx=i-1;xx<=i+1;xx+) int madom=p_datayy*wide+xx;m+; do int chg=0; for(m=0;m<8;m+) if(madom<madom+1) int madom=madom; madom=madom+1; madom+1=madom; chg=1; while(chg=1) int medi=mado4; p_dataj*wide+i=medi; 9. 完成對一幅

24、 寬為wide, 高為 height 的灰度圖像進(jìn)行垂直鏡像變換的程序。原始圖像的部分?jǐn)?shù)據(jù)為:LPBYTElpSrc; / 指向源圖像的指針LPBYTE p_data; / 指向要復(fù)制區(qū)域的指針LPBYTElpDst;/ 指向復(fù)制圖像的指針long height=this->GetHeight();/圖像的高與寬long wide=this->GetWidth();p_data=this->GetData();答:LPBYTEtemp; LONGi; / 循環(huán)變量LONGj; temp = new BYTEwide*height; / 暫時(shí)分配內(nèi)存,以保存一行圖像/ 針對上半

25、圖像進(jìn)行操作for(i = 0; i < wide;i+) for(j = 0; j < height; j+) lpSrc = (LPBYTE)p_data + wide * j+i; lpDst = (LPBYTE)temp + wide * (height - j - 1)+i; *lpDst = *lpSrc; memcpy(p_data,temp, wide*height); / 釋放內(nèi)存delete temp;10將圖像中的紅色球體進(jìn)行左右、上下、對稱復(fù)制。 原圖 處理后的圖像void TuXianFuZhiDib:Onfuzhi() LPBYTE p_data;p_d

26、ata = GetData();LONG wide= GetWidth();LONG height =GetHeight();11編程實(shí)現(xiàn)24位彩色圖像進(jìn)行處理。要求:將24位彩色圖像平均分成三個(gè)等高的區(qū)域,對這三個(gè)區(qū)域分別進(jìn)行灰度化處理、逆反處理、曝光處理。(1)對第一個(gè)區(qū)域進(jìn)行灰度變換。Gray(i,j)=0.11R(i,j)+0.59G(i,j)+0.3B(i,j)(2)對第二個(gè)區(qū)域進(jìn)行逆反處理。(3)對第三個(gè)區(qū)域進(jìn)行曝光處理。void MakeColorDib:MakegChange() BYTE *p_data; int wide,height,DibWidth; p_data=th

27、is->GetData (); wide=this->GetWidth (); height=this->GetHeight (); DibWidth=this->GetDibWidthBytes(); for(int j=0;j< height/3; j+) for(int i=0;i< ; )BYTE* pbyBlue = p_data+; /得到藍(lán)色值BYTE* pbyGreen = p_data+; /得到綠色值BYTE* pbyRed = p_data+; /得到紅色值BYTE r = *pbyRed; BYTE g = *pbyGreen; BY

28、TE b = *pbyBlue; gray =0.11*r+0.59*g+0.3*b *pbyBlue = gray; /將取到的最大值賦給像素的藍(lán)分量*pbyGreen = gray; /將取到的最大值賦給像素的綠分量*pbyRed = gray; /將取到的最大值賦給像素的紅分量for(int j= height/3;j<2*height/3;j+) / 每行for(int i=0;i<DibWidth;i+) / 每列int a=*p_data; /取得當(dāng)前點(diǎn)的值*p_data=255-a; /取反p_data+; /指向下一指針 for(int j=2*height/3;j

29、<height;j+) / 每行for(int i=0;i<DibWidth;i+) / 每列BYTE* pbydata = p_data+; /取得當(dāng)前點(diǎn)的值BYTE a=*pbydata; /傳給臨時(shí)變量*pbydata=(a>128)?a:(255-a); /調(diào)整12彩色圖像RGB顏色模型轉(zhuǎn)換為YUV顏色模型。YUV顏色模式,這是電視系統(tǒng)中常用的顏色模式,即電視中所謂的分量(Component)信號(hào)。該模式1個(gè)亮度信號(hào)Y和兩個(gè)色差信號(hào)U、V組成。它是利用了人眼對亮度信號(hào)敏感而對色度信號(hào)相對不敏感的特點(diǎn),將RGB顏色通過亮度信號(hào)公式Y(jié)=029R+050G+011B轉(zhuǎn)換為一

30、個(gè)亮度信號(hào)Y和兩個(gè)色差分量信號(hào)U、V,即對色差信號(hào)進(jìn)行了頻帶壓縮。RGB變換為YUV坐標(biāo)轉(zhuǎn)換公式如下:Y 0.299 0.587 0.114 RU = -0.1678 -0.3313 0.5 G V 0.5 -0.4187 -0.0813 B將轉(zhuǎn)換后的YUV信號(hào)存儲(chǔ)到指針p_yuvdata所指向的數(shù)據(jù)區(qū)間。void MakeColorDib:RGBMakegChangeYUV(BYTE *p_yuvdata) BYTE *p_rgbdata; int wide,height,DibWidth; p_rgbdata=this->GetData (); wide=this->GetWi

31、dth (); height=this->GetHeight (); DibWidth=this->GetDibWidthBytes(); for(int j=0;j< j<height; j+) for(int i=0;i< i<DibWidth ; i+=3) int r,g,b; r=*p_rgbdata+; g=*p_rgbdata+; b=*p_rgbdata+; *p_yuvdata= 0.299*r+0.587*g+0.114*b;p_yuvdata+; *p_yuvdata= -0.1678*r-0.3313*g+0.5*b;p_yuvdat

32、a+; *p_yuvdata= 0.5*r-0.4187*g -0.0813*b;p_yuvdata+; 13編程實(shí)現(xiàn)統(tǒng)計(jì)圖像灰度直方圖要求:本程序功能是對圖像進(jìn)行灰度直方圖統(tǒng)計(jì),比如圖像總像素?cái)?shù)為n,具有r灰度級(jí)的像素?cái)?shù)為nr,則圖像概率密度函數(shù)Pr(r)=nr/n ?;叶确植济芏确旁跀?shù)組tongji 里。請將程序代碼補(bǔ)充完整。void HuiDuBianHuanDib:ZhiFangTu(float *tongji)int i;int j;int huidu256; int wide,height; height=this->GetHeight ();wide=this->Ge

33、tWidth ();LPBYTE temp1=new BYTEwide*height; memcpy(temp1,m_pData,wide*height );for(i=0;i< height ; i+ )for(j=0;j< wide ; j+ )ussigned char temp=p_temp1wide*i+j huidutemp+; for(i=0;i< 256 ; i+ )tongjii=huidui/(height*wide*1.0f) 14將灰度圖像進(jìn)行轉(zhuǎn)換(如下圖所示) 原圖 處理后的圖像void TuXianZhuanHuanDib:OnZhuanHuan(

34、) LPBYTE p_data;p_data = GetData();LONG wide= GetWidth();LONG height =GetHeight(); 15編程實(shí)現(xiàn)偽彩色圖像的灰度處理。要求:修改顏色索引表,將偽彩色圖像顯示成灰度圖像。將顏色表區(qū)間按如下公式進(jìn)行灰度變換:Gray(i,j)=0.11R(i,j)+0.59G(i,j)+0.3B(i,j)CPalette * CDynSplitView2:CreateBitmapPalette(CDib * pBitmap)structWORD Version;WORD NumberOfEntries;PALETTEENTRY aE

35、ntries256; palette = 0x300, 256 ;LPRGBQUAD pRGBTable = pBitmap->GetRGB();UINT numberOfColors = pBitmap->GetNumberOfColors();for(UINT x=0; x<numberOfColors; +x)/請修改顏色表 / hPalette已在視類定義 hPalette.CreatePalette(LPLOGPALETTE)&palette); return &hPalette;16應(yīng)用迭代閾值法計(jì)算閾值,二值化圖像后提取目標(biāo)物體的輪廓。要求:(1

36、)獲取原圖像像素的首地址,及圖像的高和寬;(2)開辟一塊內(nèi)存緩沖區(qū),存儲(chǔ)處理后的圖像像素;(3)利用迭代閾值法,計(jì)算圖像的閾值T(選擇圖像的平均灰度值做為初始閾值);(4)對圖像進(jìn)行二值化預(yù)處理,像素灰度值大于T的置白,否則置黑;(5)將像素點(diǎn)的4鄰域像素讀入數(shù)組中,如果4個(gè)鄰域像素都和中心點(diǎn)相同,在內(nèi)存緩區(qū)將該像素點(diǎn)置白,否則保持不變;(6)重復(fù)執(zhí)行(3),對每一個(gè)像素進(jìn)行處理;(7)將處理后的圖像數(shù)據(jù)復(fù)制到原圖像中。void BingXingBianJieDib:Lunkuotiqu() LPBYTE p_data, lpSrc; int wide,height; int i,j; int

37、 n1,n2,n3,n4; lpSrc=this->GetData(); p_data=lpSrc; wide=this->GetWidth ();height=this->GetHeight ();/迭代法計(jì)算圖像的閾值T,再進(jìn)行二值化預(yù)處理,像素灰度值大于T的置白,否則置黑。 p_data=lpSrc; LPBYTE temp=new BYTEwide*height; memset( temp,255,sizeof( temp); for(j=1;j<height-1;j+) for(i=1;i<wide-1;i+) memcpy(lpSrc, temp,wi

38、de*height); delete temp; 17. 編寫一幅 寬為width, 高為 height 的圖像進(jìn)行垂直上移的程序;并說明如何加快和減慢顯示的速度? 答: for(int i=0;i<=bitmapHeight;i+)for(int j=0;j<=bitmapWidth; j=j+1):StretchDIBits(pDC->GetSafeHdc(), j , bitmapHeight-i , 1, i , j , bitmapHeight-i , 1, i , pBitmapData, pBitmapInfo, DIB_RGB_COLORS, SRCCOPY)

39、; Sleep(5);BOOL StretchDIBits(HDC hdc,int x,int y,int nWidth,int nHeight,int xSrc,int ySrc,int nSrcWidth,int nSrcHeight, CONST VOID*lpvBits,CONST BITMAPINFO *lpbmi, UNIT fuColorUse,DWORD dwrop); 參數(shù)說明: hdc:設(shè)備上下文句柄。 x: 指定繪制目標(biāo)矩形左上角的邏輯X軸位置。y: 指定繪制目標(biāo)矩形左上角的邏輯Y軸位置。nWidth: 指定繪制目標(biāo)矩形的寬度(按邏輯單位)。nHeight: 指定繪制目標(biāo)

40、矩形的高度(按邏輯單位)。xSrc,ySrc: 指定源位圖左上角的坐標(biāo)(按邏輯單位)。加快顯示的方法為,每次顯示多行;減慢顯示的方法有:加入sleep(.),每顯示一行,睡眠幾秒鐘;或者每次顯示一行中的一個(gè)或幾個(gè)像素,而不是一次顯示一行。18. 采用Robert算子對一幅 寬為wide, 高為 height 的灰度圖像進(jìn)行邊緣檢測的程序。原始圖像的部分?jǐn)?shù)據(jù)為:LPBYTE p_data; /原圖數(shù)據(jù)區(qū)指針int wide,height; /原圖長、寬p_data=this->GetData (); /取得原圖的數(shù)據(jù)區(qū)指針 wide=this->GetWidth (); /取得原圖的

41、數(shù)據(jù)區(qū)寬度 height=this->GetHeight (); /取得原圖的數(shù)據(jù)區(qū)高度答:int i,j; /循環(huán)變量 int pixel4; /Robert算子LPBYTE temp=new BYTEwide*height; /新圖像緩沖區(qū) memset(temp,255,wide*height); /設(shè)定新圖像初值為255/由于使用2*2的模板,為防止越界,所以不處理最下邊和最右邊的兩列像素for(j=0;j<height-1;j+)for(i=0;i<wide-1;i+) /生成Robert算子pixel0=p_dataj*wide+i;pixel1=p_dataj*

42、wide+i+1;pixel2=p_data(j+1)*wide+i;pixel3=p_data(j+1)*wide+i+1;/處理當(dāng)前像素 tempj*wide+i=(int)sqrt(pixel0-pixel3)*(pixel0-pixel3)+(pixel1-pixel2)*(pixel1-pixel2);/將緩沖區(qū)中的數(shù)據(jù)復(fù)制到原圖數(shù)據(jù)區(qū)memcpy(p_data, temp,wide*height);/刪除緩沖區(qū)delete temp; 二、簡答題:1簡述調(diào)用調(diào)色板的基本方法。2總結(jié)圖像的特效顯示方法。3在特效顯示中,如何加快或減慢顯示速度。4簡述灰度變換的基本方法。5簡述圖像的二值

43、化處理方法。6. 圖像分辨率與顯示分辨率有什么差別?在圖像的數(shù)字化過程中,影響圖像質(zhì)量的因素有哪些,是怎么影響的?答:圖像分辨率是數(shù)字化圖像劃分圖像的像素密度,即單位長度內(nèi)的像素?cái)?shù),其單位是每英寸的點(diǎn)數(shù)DPI。顯示分辨率是把數(shù)字圖像在輸出設(shè)備(如顯示屏或打印機(jī)等)上能夠顯示的像素?cái)?shù)目和所顯示像素之間的點(diǎn)距。影響圖像質(zhì)量的因素有兩方面:采樣分辨率和量化分辨率。采樣分辨率越高,圖像越清晰;量化分辨率越高,圖像層次越豐富。7簡述點(diǎn)運(yùn)算與局部運(yùn)算的差別。8令原圖像的灰度范圍為50,80,線性變換后圖像的范圍為20,180,寫出與之間存在的變換公式。9簡述灰度統(tǒng)計(jì)直方圖在數(shù)字圖像處理中的應(yīng)用。10簡述平

44、滑處理的基本方法。11簡述消除孤立黑像素點(diǎn)的基本方法。12分析比較基于空域的平滑處理與銳化處理在原理、處理方式及處理效果上的異同點(diǎn)。13對于如下圖像,應(yīng)用何種方法,能夠檢測出物體的邊緣。寫出檢測公式。0 0 1 255 255 255 2551 1 1 254 253 254 2540 0 0 255 255 253 2531 1 0 254 254 254 25414寫出雙方向一次微分運(yùn)算的數(shù)學(xué)表達(dá)式。15簡述梯度銳化的目的,比較用縱向微分運(yùn)算、橫向微分運(yùn)算、雙方向一次微分運(yùn)算作為梯度,哪一種效果更好。16最基本的一類邊緣檢測算子是微分算子類。包括哪些?17簡述Sobel邊緣檢測算子的實(shí)現(xiàn)方

45、法。18. 灰度直方圖的定義答:圖像的直方圖包含了豐富的圖像信息,描述了圖像的灰度級(jí)內(nèi)容,反映了圖像的灰度分布情況,從數(shù)學(xué)上會(huì)所,它統(tǒng)計(jì)一幅圖像中各個(gè)灰度級(jí)出現(xiàn)的次數(shù)或概率;從圖像上來說,它是一個(gè)二維圖,橫坐標(biāo)表示圖像中各個(gè)像素點(diǎn)的灰度級(jí),縱坐標(biāo)為各個(gè)灰度級(jí)上圖像像素點(diǎn)出現(xiàn)的個(gè)數(shù)或出現(xiàn)概率。19圖像分割的研究目的是什么?20在使用閾值法進(jìn)行圖像分割時(shí),能否正確分割的關(guān)鍵是什么?21假設(shè)一幅圖像只有物體和背景兩部分組成,簡述實(shí)現(xiàn)圖像分割閾值的選擇方法。22簡述實(shí)現(xiàn)迭代閾值圖像分割的方法。23圖像的輪廓提取的目的是什么?試說明進(jìn)行圖像輪廓提取的處理步驟。24試說明進(jìn)行圖像邊界跟蹤的處理步驟。25試說明進(jìn)行圖像垂直投影量的處理步驟。26簡述紋理的統(tǒng)計(jì)特征、結(jié)構(gòu)特征。27如何對紋理進(jìn)行測度分析?28簡述實(shí)現(xiàn)計(jì)算灰度共生矩陣的方法。29對下圖經(jīng)過先腐蝕,后膨脹處理,請畫出處理之后的圖0 0 0 0 0 0 0 0 0 00 0 0 0 0 0 0 1 0 0 0 0 0 0 00 1 1 1 0 1 1 1 1 0 0 1 1 1 00 1 1 1 0 1 1 1 1 0 0 1 1 1

溫馨提示

  • 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
  • 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
  • 5. 人人文庫網(wǎng)僅提供信息存儲(chǔ)空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負(fù)責(zé)。
  • 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

評論

0/150

提交評論