freepeople性欧美熟妇, 色戒完整版无删减158分钟hd, 无码精品国产vα在线观看DVD, 丰满少妇伦精品无码专区在线观看,艾栗栗与纹身男宾馆3p50分钟,国产AV片在线观看,黑人与美女高潮,18岁女RAPPERDISSSUBS,国产手机在机看影片

正文內(nèi)容

畢業(yè)設(shè)計(jì)論文--幾種常見(jiàn)的圖像邊緣檢測(cè)算子及其比較-資料下載頁(yè)

2024-12-01 23:04本頁(yè)面

【導(dǎo)讀】圖像是人類相互交流和認(rèn)識(shí)客觀世界的主要媒體。隨著計(jì)算機(jī)科學(xué)與技術(shù)的飛速。業(yè)生產(chǎn)、氣象預(yù)報(bào)、遙感技術(shù)及考古等諸多領(lǐng)域。而邊緣檢測(cè)是數(shù)字圖像處理的重要。內(nèi)容,是圖像分割、特征提取和圖像識(shí)別等圖像處理技術(shù)的重要前提。背景間的交界線。本文介紹了數(shù)字圖像處理的概念及其應(yīng)用領(lǐng)域、邊緣檢測(cè)研究的意。Laplace算子等,并通過(guò)理論分析和實(shí)驗(yàn)結(jié)果比較了它們各自的優(yōu)缺點(diǎn)。圖像是人類獲得信息的主要媒介。

  

【正文】 =(bmpWidth * biBitCount/8+3)/4*4。//灰度圖像有顏色表,且顏色表表項(xiàng)為 256 if(biBitCount==8) { //申請(qǐng)顏色表所需要的空間,讀顏色表進(jìn)內(nèi)存 pColorTable=new RGBQUAD[256]。 fread(pColorTable,sizeof(RGBQUAD),256,fp)。 } //申請(qǐng)位圖數(shù)據(jù)所需要的空間,讀位圖數(shù)據(jù)進(jìn)內(nèi)存 pBmpBuf=new unsigned char[lineByte * bmpHeight]。 fread(pBmpBuf,1,lineByte * bmpHeight,fp)。 fclose(fp)。//關(guān)閉文件 return 1。//讀取文件成功 } // //給定一個(gè)圖像位圖數(shù)據(jù)、寬、高、顏色表指針及每像素所占的位數(shù)等信息 ,將其寫到指定文件中 bool saveBmp(char *bmpName, unsigned char *imgBuf, int width, int height, int biBitCount, RGBQUAD *pColorTable) { //如果位圖數(shù)據(jù)指針為 0,則沒(méi)有數(shù)據(jù)傳入,函數(shù)返回 if(!imgBuf) return 0。 //顏色表大小,以字節(jié)為單位,灰度圖像顏色表為 1024 字節(jié) int colorTablesize=0。 if(biBitCount==8) colorTablesize=1024。 //待存儲(chǔ)圖像數(shù)據(jù)每行字節(jié)數(shù)為 4 的倍數(shù) int lineByte=(width * biBitCount/8+3)/4*4。 //以二進(jìn)制寫的方式打開(kāi)文件 FILE *fp=fopen(bmpName,wb)。 if(fp==0) return 0。 //申請(qǐng)位圖文件頭結(jié)構(gòu)變量,填寫文件頭信息 BITMAPFILEHEADER fileHead。 = 0x4D42。//bmp 類型 //bfSize 是圖像文件 4個(gè)組成部分之和 = sizeof(BITMAPFILEHEADER) + sizeof(BITMAPINFOHEADER)+ colorTablesize + lineByte*height。 = 0。 = 0。 //bfOffBits 是圖像文件前 3 個(gè)部分所需空間之和 =54+colorTablesize。 //寫文件頭進(jìn)文件 fwrite(amp。fileHead, sizeof(BITMAPFILEHEADER),1, fp)。 //申請(qǐng)位圖信息頭結(jié)構(gòu)變量,填寫信息頭信息 BITMAPINFOHEADER head。 =biBitCount。 =0。 =0。 =0。 =height。 =1。 =40。 =lineByte*height。 =width。 =0。 =0。 //寫位圖信息頭進(jìn)內(nèi)存 fwrite(amp。head, sizeof(BITMAPINFOHEADER),1, fp)。 //如果灰度圖像,有顏色表,寫入文件 fwrite(pColorTable, sizeof(RGBQUAD),256, fp)。 //寫位圖數(shù)據(jù)進(jìn)文件 fwrite(imgBuf, height*lineByte, 1, fp)。 //關(guān)閉文件 fclose(fp)。 return 1。 } // //各邊緣檢測(cè)算子算法實(shí)現(xiàn) //函數(shù)聲明 void roberts(unsigned char *pBmpBufroberts)。 void laplace(unsigned char *pBmpBuflaplace)。 void sobel(unsigned char *pBmpBufsobel)。 void robinson(unsigned char *pBmpBufrobin)。 void prewitt(unsigned char *pBmpBufprewitt)。 void kirsch(unsigned char *pBmpBufkirsch)。 void main() { //讀入指定 BMP 文件進(jìn)內(nèi)存 char readPath[]=c:/。 readBmp(readPath)。 //輸出圖像的信息 printf(width=%d,height=%d, biBitCount=%d\n,bmpWidth,bmpHeight, biBitCount)。 //函數(shù)調(diào)用 roberts(pBmpBuf)。 laplace(pBmpBuf)。 sobel(pBmpBuf)。 robinson(pBmpBuf)。 prewitt(pBmpBuf)。 kirsch(pBmpBuf)。 //清除緩沖區(qū), pBmpBuf 和 pColorTable 是全局變量,在文件讀入時(shí)申請(qǐng)的空間 delete []pBmpBuf。 delete []pColorTable。 } //各函數(shù)定義 //roberts 算子 void roberts(unsigned char *pBmpBufroberts) { unsigned char *pBmpBuf0。 unsigned char pBmpBuf9[256*256]。 int ix,iy,vx,vy,lx=256。 pBmpBuf0=pBmpBufroberts。 //模板 1 for(ix=1。ix255。ix++) { for(iy=1。iy255。iy++) { vx=ff(ix+1,iy)ff(ix,iy)。 vy=ff(ix,iy+1)ff(ix,iy)。 gg(ix,iy)=abs(vx)+abs(vy)。 } } //將圖像數(shù)據(jù)存盤 char writePath[]=。 saveBmp(writePath, pBmpBuf9, bmpWidth, bmpHeight, biBitCount, pColorTable)。 //模板 2 for(ix=1。ix255。ix++) for(iy=1。iy255。iy++) { vx=ff(ix,iy)ff(ix+1,iy+1)。 vy=ff(ix+1,iy)ff(ix,iy+1)。 gg(ix,iy)=abs(vx)+abs(vy)。 } //將圖像數(shù)據(jù)存盤 char writePath2[]=。 saveBmp(writePath2, pBmpBuf9, bmpWidth, bmpHeight, biBitCount, pColorTable)。 } //robinson void robinson(unsigned char *pBmpBufrobin) { unsigned char *pBmpBuf0。 pBmpBuf0=pBmpBufrobin。 unsigned char pBmpBuf9[256*256]。 int ix,iy,im,mx,my,jx,jy,jpv,mxav。 static int mask[8][3][3]= { 1,2,1,0,0,0,1,2,1, 0,1,2,1,0,1,2,1,0, 1,0,1,2,0,2,1,0,1, 2,1,0,1,0,1,0,1,2, 1,2,1,0,0,0,1,2,1, 0,1,2,1,0,1,2,1,0, 1,0,1,2,0,2,1,0,1, 2,1,0,1,0,1,0,1,2, }。 for(ix=1。ix255。ix++) for(iy=1。iy255。iy++) { for(im=0。im=7。im++) { jpv=0。 mxav=0。 for(mx=0。mx=2。mx++) { jx=ix1+mx。 for(my=0。my=2。my++) { jy=iy1+my。 jpv=jpv+ff(jx,jy)*mask[im][mx][my]。 } } if((jpvmxav)||(im==0))mxav=jpv。 } gg(ix,iy)=mxav。 } //將圖像數(shù)據(jù)存盤 char writePath[]=。 saveBmp(writePath, pBmpBuf9, bmpWidth, bmpHeight, biBitCount, pColorTable)。 } //prewitt void prewitt(unsigned char *pBmpBufprewitt) { unsigned char *pBmpBuf0。 pBmpBuf0=pBmpBufprewitt。 unsigned char pBmpBuf9[256*256]。 int ix,iy,im,mx,my。 int jx,jy,jpv,mxav。 static int mask[8][3][3]= { 1,1,1,1,2,1,1,1,1, 1,1,1,1,2,1,1,1,1, 1,1,1,1,2,1,1,1,1, 1,1,1,1,2,1,1,1,1, 1,1,1,1,2,1,1,1,1, 1,1,1,1,2,1,1,1,1, 1,1,1,1,2,1,1,1,1, 1,1,1,1,2,1,1,1,1, }。 for(ix=1。ix255。ix++) for(iy=1。iy255。iy++) { for(im=0。im=7。im++) { jpv=0。 mxav=0。 for(mx=0。mx=2。mx++) { jx=ix1+mx。 for(my=0。my=2。my++) { jy=iy1+my。 jpv=jpv+ff(jx,jy)*mask[im][mx][my]。 } } if((jpvmxav)||(im==0))mxav=jpv。 } gg(ix,iy)=mxav。 } //將圖像數(shù)據(jù)存盤 char writePath[]=。 saveBmp(writePath, pBmpBuf9, bmpWidth, bmpHeight, biBitCount, pColorTable)。 } //kirsch void kirsch(unsigned char *pBmpBufkirsch) { unsigned char *pBmpBuf0。 pBmpBuf0=pBmpBufkirsch。 unsigned char pBmpBuf9[256*256]。 int ix,iy,im,mx,my,jx,jy,jpv,mxav。 static int mask[8][3][3]= { 5,5,5,3,0,3,3,3,3, 3,5,5,3,0,5,3,3,3, 3,3,5,3,0,5,3,3,5, 3,3,3,3,0,5,3,5,5, 3,3,3,3,0,3,5,5,5, 3,3,3,5,0,3,5,5,3, 5,3,3,5,0,3,5,3,3, 5,5,3,5,0,3,3,3,3, }。 for(ix=1。ix255。ix++) for(iy=1。iy255。iy++) { for(im=0。im=7。im++) {
點(diǎn)擊復(fù)制文檔內(nèi)容
公司管理相關(guān)推薦
文庫(kù)吧 www.dybbs8.com
備案圖鄂ICP備17016276號(hào)-1