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

正文內(nèi)容

畢業(yè)設(shè)計彩色顆粒顯微圖像識別系統(tǒng)顆粒圖像識別模塊論文(參考版)

2025-06-25 12:06本頁面
  

【正文】 現(xiàn)將論文的內(nèi)容總結(jié)如下:(1)在開始前言中大體介紹了本課題的選題背景、國內(nèi)外研究現(xiàn)狀以及本課題的選題目的與選題意義;(2)對圖像識別的基本概念以及CxImage圖像操作類庫的簡單介紹; (3)對圖像識別的方法做了分述;(4)對圖像的邊緣檢測所包含的所有算子的原理以及部分VC代碼做了敘述以及對每種算法對圖像所處理的結(jié)果予以顯示;、(5)對圖像的Hough變換、圖像輪廓提取、圖像的種子填充以及圖像的輪廓跟蹤的基本原理以及算法和VC代碼作了簡要介紹。其中圖像的邊緣檢測方法包含Robert算子、Sobel算子、Prewitt算子、Laplacian算子、Kirsch算子。 return TRUE。 LocalUnlock(hNewDIBBits)。 if(BeginDirect == 8) { BeginDirect = 0。 if(BeginDirect == 1) { BeginDirect = 7。 if(BeginDirect == 1) { BeginDirect = 7。 *lpDst = (unsigned char)0。 == ) { bFindStartPoint = true。 if( == amp。 = +Direction[BeginDirect][1]。 pixel = (unsigned char)*lpSrc。 while(!bFindStartPoint) { bFindPoint = false。 //從初始點開始掃描 = 。 } } } //由于起始點是在左下方,故起始掃描沿左上方向 BeginDirect = 0。 // 指向目標(biāo)圖像倒數(shù)第j行,第i個象素的指針 lpDst = (char *)lpNewDIBBits + lLineBytes * j + i。 = j。 //取得當(dāng)前指針處的像素值,注意要轉(zhuǎn)換為unsigned char型 pixel = (unsigned char)*lpSrc。 !bFindStartPoint。i lWidth amp。 !bFindStartPoint。j lHeight amp。 //先找到最左上方的邊界點 bFindStartPoint = false。 // 初始化新分配的內(nèi)存,設(shè)定初始值為255 lpDst = (char *)lpNewDIBBits。 if (hNewDIBBits == NULL) { return FALSE。 // 計算圖像每行的字節(jié)數(shù) lLineBytes = WIDTHBYTES(lWidth * 8)。 // 起始邊界點與當(dāng)前邊界點 //八個方向和起始掃描方向 int Direction[8][2]={{1,1},{0,1},{1,1},{1,0},{1,1},{0,1},{1,1},{1,0}}。 // 是否找到起始點及回到起始點 bool bFindPoint。 // 循環(huán)變量 unsigned char pixel。 LONG lLineBytes。 // 指向緩存圖像的指針 LPSTR lpNewDIBBits。 ************************************************************************/ BOOL CDibImage::TraceDIB(LPSTR lpDIBBits, LONG lWidth, LONG lHeight) { LPSTR lpSrc。 * 說明: * 該函數(shù)用于對圖像進(jìn)行輪廓跟蹤運(yùn)算。 BOOL lHeight 源圖像寬度(象素數(shù),必須是4的倍數(shù)) * LONG TraceDIB() * 參數(shù): * 判斷是不是邊界點是比較容易的:如果它的上下左右四個鄰居都是黑點則不是邊界點,否則是邊界點。從B開始找起,按右,右下,下,左下,左,左上,上,右上的順序找相鄰點中的邊界點C。 簡單的輪廓提取算法描述如下: 一個簡單二值圖像閉合邊界的輪廓跟蹤算法比較簡單:首先按從上到下,從左到右的順序搜索,找到的第一個黑點必定是最左上方的邊界點,記為A。 步驟4:由邊界點A0、AA……、An2構(gòu)成的邊界便即為要跟蹤的邊界。定義一個掃描方向變量d,該變量用來記作上一步中沿著前一個邊界點到當(dāng)前邊界點的移動方向,其初始化取值為  ?。?)對4連通區(qū)域取d=3;  ?。?)對8連通區(qū)域取d=7; 步驟2:按逆時針方向搜索當(dāng)前像素的3*3鄰域,其起始搜索方向設(shè)定如下:  ?。?)對4連通區(qū)域取(d+3)mod 4;  ?。?)對8連通區(qū)域,若d為奇數(shù)取(d+7)mod 8;若d偶數(shù)去(d+6)mod 8; 在3*3鄰域中搜索到的第一個和當(dāng)前像素值相同的像素點便為新的邊界點An,同時更新變量d為新的方向值。若圖像是二值圖像或者圖像中不同區(qū)域具有不同的像素值,但每個區(qū)域內(nèi)的像素值是相同的,例如以下算法可完成基于4連通或8連通區(qū)域的輪廓跟蹤。  }}在識別圖像中的目標(biāo)時,往往需要對目標(biāo)邊緣作跟蹤處理,也叫做輪廓跟蹤。   BoundaryFill4(x, y+1, FilledColor,BoundaryColor)?!  oundaryFill4(x+1, y, FilledColor, BoundaryColor)。 CurrentColor != FilledColor)  {   SetColor(FilledColor)?! f (CurrentColor != BoundaryColor amp。四向連通遞歸填充算法:void BoundaryFill4(int x, int y, long FilledColor, long BoundaryColor){  long CurrentColor。用這種方法填充的區(qū)域就稱為八連通域;這種填充方法又稱為八向連通算法。用這種方法填充的區(qū)域就稱為四連通域;這種填充方法稱為四向連通算法。種子填充算法常用四連通域和八連通域進(jìn)行填充操作。其基本思想是:從多邊形區(qū)域里的一個內(nèi)點開始,由內(nèi)向外逐漸用給定的顏色畫點直到邊界為止。 pDocUpdateAllViews(NULL)。 pDocSetModifiedFlag(true)。 ::GlobalUnlock((HGLOBAL)pDocGetHDIB())。 delete [] temp。memcpy(lpDIBBits,temp4,sizeof(BYTE)*lLineBytes*lHeight)。}} temp4[(lHeighti1)*lLineBytes+j]=255。 a++。 if(abs(*(lpDIBBits+(lHeighti1+s)*lLineBytes+j+k)*(lpDIBBits+(lHeighti1)*lLineBytes+j))10) k=1。 s++)for(s=1。 j++)for(j=1。 ilHeight1。 int s,k,a。 } {j++) for(j=0。 {ilHeight1。 LPSTR lpDIB。 void COpendocumentView::OnColorConverse() {輪廓提取在許多職能的視覺系統(tǒng)中有提示在模式識別中被看做是很重要的過程,傳統(tǒng)的輪廓提取方法主要利用邊緣檢測算子進(jìn)行邊緣輪廓的提取,然后根據(jù)目標(biāo)物的輪廓特點除去雜散的冗余邊緣同時進(jìn)行邊緣的修補(bǔ)隨著研究的深入和技術(shù)的不斷發(fā)展,出現(xiàn)多種新的輪廓提取方法。}在圖像識別的研究中,邊緣和線段都包含著非常豐富的圖像信息,代表圖像的基本特征,邊緣與線段的組合形成一幅圖像并區(qū)別于其他任何圖像的集合特征。 LocalFree(hTransArea)。 LocalFree(hNewDIBBits)。 } } } // 復(fù)制腐蝕后的圖像 memcpy(lpDIBBits, lpNewDIBBits, lWidth * lHeight)。 //在第二條直線上 iDist = (int) fabs(i*cos(*2*pi/) + j*sin(*2*pi/))。 //如果該點在某一條平行直線上,則在緩存圖像上將該點賦為黑 //在第一條直線上 iDist = (int) fabs(i*cos(*2*pi/) + j*sin(*2*pi/))。i lWidth。 j lHeight。 = iAngleNumber。 iAngleNumber++) { if((int)*(lpTransArea+iDist*iMaxAngleNumber+iAngleNumber)) { =(int)*(lpTransArea+iDist*iMaxAngleNumber+iAngleNumber)。iDist++) { for(iAngleNumber=0。 } } } //找到第二個最大值點 for (iDist=0。amp。amp。amp。 iAngleNumber2。iDist 10。 = iAngleNumber。 iAngleNumber++) { if((int)*(lpTransArea+iDist*iMaxAngleNumber+iAngleNumber)) { = (int)*(lpTransArea+iDist*iMaxAngleNumber+iAngleNumber)。iDist++) { for(iAngleNumber=0。 //找到第一個最大值點 for (iDist=0。 } } } } //找到變換域中的兩個最大值點 =0。 iAngleNumber++) { iDist = (int) fabs(i*cos(iAngleNumber*2*pi/) + j*sin(iAngleNumber*2*pi/))。 //如果是黑點,則在變換域的對應(yīng)各點上加1 if(pixel == 0) { //注意步長是2度 for(iAngleNumber=0。amp。 //取得當(dāng)前指針處的像素值,注意要轉(zhuǎn)換為unsigned char型 pixel = (unsigned char)*lpSrc。i lWidth。 j lHeight。 // 計算圖像每行的字節(jié)數(shù) lLineBytes = WIDTHBYTES(lWidth * 8)。 // 初始化新分配的內(nèi)存,設(shè)定初始值為0 lpTrans = (char *)lpTransArea。 if (hNewDIBBits == NULL) { // 分配內(nèi)存失敗 Return FALSE。 //角度從0-180,
點擊復(fù)制文檔內(nèi)容
環(huán)評公示相關(guān)推薦
文庫吧 www.dybbs8.com
備案圖鄂ICP備17016276號-1