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

正文內(nèi)容

最新數(shù)字圖像邊緣檢測(cè)算法設(shè)計(jì)與實(shí)現(xiàn)(編輯修改稿)

2025-08-03 14:32 本頁(yè)面
 

【文章內(nèi)容簡(jiǎn)介】 60。 if((hTempImgData=LocalAlloc(LHND,BufSize))==NULL) { MessageBox(hWnd,Error alloc memory!,Error Message,MB_OK|MB_ICONEXCLAMATION)。return FALSE。 } lpImgData=(LPBITMAPINFOHEADER)GlobalLock(hImgData)。 lpTempImgData=(LPBITMAPINFOHEADER)LocalLock(hTempImgData)。//拷貝頭信息和位圖數(shù)據(jù) memcpy(lpTempImgData,lpImgData,BufSize)。 for (y=1。y。y++){ //注意y的范圍是從1到高度2 lpPtr=(char *)lpImgData+(BufSizeLineBytesy*LineBytes)。 lpTempPtr=(char *)lpTempImgData+(BufSizeLineBytesy*LineBytes)。 for (x=1。x。x++){ if(*(lpPtr+x)==0){ //是個(gè)黑點(diǎn) //查找八個(gè)相鄰點(diǎn) nw=(unsigned char)*(lpPtr+x+LineBytes1)。 n=(unsigned char)*(lpPtr+x+LineBytes)。 ne=(unsigned char)*(lpPtr+x+LineBytes+1)。 w=(unsigned char)*(lpPtr+x1)。 e=(unsigned char)*(lpPtr+x+1)。 sw=(unsigned char)*(lpPtr+xLineBytes1)。 s=(unsigned char)*(lpPtr+xLineBytes)。 se=(unsigned char)*(lpPtr+xLineBytes+1)。 num=nw+n+ne+w+e+sw+s+se。 if(num==0) //說明都是黑點(diǎn) *(lpTempPtr+x)=(unsigned char)255。 //刪除該黑點(diǎn) } } } if(hBitmap!=NULL) DeleteObject(hBitmap)。 hDc=GetDC(hWnd)。 //創(chuàng)立一個(gè)新的位圖 hBitmap=CreateDIBitmap(hDc,(LPBITMAPINFOHEADER)lpTempImgData,(LONG)CBM_INIT,(LPSTR)lpTempImgData+sizeof(BITMAPINFOHEADER)+NumColors*sizeof(RGBQUAD),(LPBITMAPINFO)lpTempImgData,DIB_RGB_COLORS)。hf=_lcreat(c:\\,0)。 _lwrite(hf,(LPSTR)amp。bf,sizeof(BITMAPFILEHEADER))。 _lwrite(hf,(LPSTR)lpTempImgData,BufSize)。 _lclose(hf)。 //釋放內(nèi)存和資源 ReleaseDC(hWnd,hDc)。 LocalUnlock(hTempImgData)。 LocalFree(hTempImgData)。 GlobalUnlock(hImgData)。 return TRUE。}封閉曲線形成的環(huán)中填充某中顏色就需要用到種子填充算法,我們要填充的是黑色。程序如下://堆棧結(jié)構(gòu)typedef struct{ HGLOBAL hMem。 //堆棧全局內(nèi)存句柄 POINT *lpMyStack。 //指向該句柄的指針 LONG ElementsNum。 //堆棧的大小 LONG ptr。 }MYSTACK。BOOL InitStack(HWND hWnd,LONG StackLen){ =StackLen。 //將堆棧的大小賦值 if((=GlobalAlloc(GHND,*sizeof(POINT)))==NULL) { //內(nèi)存分配錯(cuò)誤,返回FALSE。 MessageBox(hWnd,Error alloc memory!,ErrorMessage,MB_OK|MB_ICONEXCLAMATION)。 return FALSE。 } =(POINT *)GlobalLock()。 //緩沖區(qū)全部清零memset(,0,*sizeof(POINT))。//堆頂指針為零 =0。 //成功,返回TRUE return TRUE。}//析構(gòu)函數(shù)void DeInitStack(){ GlobalUnlock()。 GlobalFree()。 =0。 =0。}//push操作BOOL MyPush(POINT p){ POINT *TempPtr。 if(=) return FALSE。 //棧已滿,返回FALSE TempPtr=(POINT *)(+++)。 (*TempPtr).x=。 (*TempPtr).y=。 return TRUE。}//pop操作POINT MyPop(){ POINT InvalidP。 =1。 =1。 if(=0) return InvalidP。 //棧為空,返回?zé)o效點(diǎn) 。 //棧頂指針減1 //返回棧頂點(diǎn) return *(+)。}//判斷堆棧是否為空BOOL IsStackEmpty(){ return (==0)?TRUE:FALSE。}要注意的是:(1)要填充的區(qū)域是封閉的;(2)我們只用到了0和255兩種顏色; MYSTACK SeedFillStack。BOOL SeedFill(HWND hWnd){DWORD OffBits,BufSize。 LPBITMAPINFOHEADER lpImgData。 HLOCAL hTempImgData。 LPBITMAPINFOHEADER lpTempImgData。 LPSTR lpTempPtr,lpTempPtr1。 HDC hDc。 HFILE hf。 POINT CurP,NeighborP。 if( NumColors!=256){MessageBox(hWnd,Must be a mono bitmap with grayscale palette!,Error Message,MB_OK|MB_ICONEXCLAMATION)。return FALSE。}OffBits=(BITMAPFILEHEADER)。 BufSize=OffBits+*LineBytes。 if((hTempImgData=LocalAlloc(LHND,BufSize))==NULL) { MessageBox(hWnd,Error alloc memory!,Error Message,MB_OK|MB_ICONEXCLAMATION)。return FALSE。 } lpImgData=(LPBITMAPINFOHEADER)GlobalLock(hImgData)。 lpTempImgData=(LPBITMAPINFOHEADER)LocalLock(hTempImgData)。//拷貝頭信息和位圖數(shù)據(jù) memcpy(lpTempImgData,lpImgData,BufSize)。 if(!InitStack
點(diǎn)擊復(fù)制文檔內(nèi)容
畢業(yè)設(shè)計(jì)相關(guān)推薦
文庫(kù)吧 www.dybbs8.com
備案圖片鄂ICP備17016276號(hào)-1