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

正文內(nèi)容

江南大學(xué)學(xué)士畢業(yè)論文--圖像處理的程序設(shè)計--基于vc6(參考版)

2024-11-20 18:08本頁面
  

【正文】 。 本章小結(jié) 本章對圖像處理中的一些基本原理進行了闡述,并重點討論了圖像復(fù)合問題。復(fù)合圖像時,背景圖像和前景圖像的像素必須有相同的位數(shù)。如輸入非整數(shù)型的非法字符,則系統(tǒng)提示出錯。透明度 degree 的范圍為 0~100%,因而編輯框中的數(shù)字只能輸入 0~100。由 DIBNumColors( )返回的數(shù)值決定。 圖 420 綜合效果 程序中的注意點 1.像素顏色的位數(shù)處理 BMP 位圖每像素顏色的位數(shù),它可為 8 或 24,在 Windows 2020 中還支持 32位色,只需增加一個透明度字節(jié)。 } 圖像處理的綜合效果 江南大學(xué)學(xué)士學(xué)位論文 33 仍然以圖 48 為背景圖像,以圖 49 為前景圖像。 } } } else MessageBox(degree 值需在 0~100 之間 !)。ktag。 break。 case 4: if(degree==0) { *(lpSrc+k)=*(lpSrc2+k)。 } else *(lpSrc+k)=(*(lpSrc1+k))*(*(lpSrc2+k))/255。 break。 case 2: if(*(lpSrc2+k)!=255) *(lpSrc+k)=*(lpSrc1+k)*degree/+*(lpSrc2+k)*(1degree/)。 case 1: *(lpSrc+k)=*(lpSrc1+k)*degree/+*(lpSrc2+k)。k++) { switch(type) { case 0: 江南大學(xué)學(xué)士學(xué)位論文 32 *(lpSrc+k)=*(lpSrc1+k)*degree/+*(lpSrc2+k)*(1degree/)。 for(k=0。amp。 lpSrc=(unsigned char*)lpDIBBits+lLineBytes1*i+j*tag。jlWidth_1。i=0。 lpDIBBits=::FindDIBBits (lpDIB)。amp。 InteRotate(lpDIBBits2,::DIBWidth(lpDIB2),::DIBHeight(lpDIB2),angle,::DIBNumColors(lpDIB2))。 lWidth_2=lLineBytes2。 } else { tag=1。 lWidth_1=lWidth1。 int lWidth_2。 } int tag。 } else { lLineBytes1=WIDTHBYTES(lWidth1*8/s)。 if(s= =3||s= =1) { lLineBytes1=WIDTHBYTES(lWidth1*8*s)。 //圖象每行的字節(jié)數(shù) LONG lLineBytes1。 else if(count==16) s=2。 if(count==0) s=3。 unsigned char* lpSrc2。 unsigned char* lpSrc。 lHeight1=::DIBHeight (lpDIB1)。 lWidth1=::DIBWidth (lpDIB1)。 lpDIBBits1=::FindDIBBits (lpDIB1)。 LONG i,j。 LONG lHeight1。 LONG lWidth1。 } } } 其間用到的 Inteoverlap(LPSTR lpDIB, LPSTR lpDIB1, LPSTR lpDIB2, int degree, int type)江南大學(xué)學(xué)士學(xué)位論文 30 為在 CGraphics_czView 類中增加的函數(shù),其實現(xiàn)如下: BOOL CGraphics_czView::InteOverlap(LPSTR lpDIB, LPSTR lpDIB1, LPSTR lpDIB2, WORD count, int degree, int type, LONG lXOffset, LONG lYOffset, int angle) { LPSTR lpDIBBits1。 ::GlobalUnlock((HGLOBAL)pDocm_hDIB2)。 pDocUpdateAllViews(NULL)。 //調(diào)用 Inteoverlap()函數(shù) InteOverlap(lpDIB,lpDIB1,lpDIB2,count1,degree, lXoffset, lYoffset,)。 lXoffset=。 =0。 =0。 LONG lYoffset。 else { int degree。 count2=::DIBNumColors(lpDIB2)。 WORD count2。 lpDIB=(LPSTR)::GlobalLock((HGLOBAL)pDocm_hDIBn)。 //鎖定 DIB lpDIB1=(LPSTR)::GlobalLock((HGLOBAL)pDocm_hDIB1)。 LPSTR lpDIB2。 OnOverlap 函數(shù) void CGraphics_czView::OnOverlap() { 江南大學(xué)學(xué)士學(xué)位論文 29 CGraphics_czDoc* pDoc=GetDocument()。 pDocUpdateAllViews (NULL)。 ASSERT_VALID(pDoc)。用于顯示前景圖像。 } pDocm_hDIB=pDocm_hDIB1。 void CGraphics_czView::OnDisplayBack() { CGraphics_czDoc* pDoc = GetDocument()。 OnDisplayBack 函數(shù) 選擇“圖像復(fù) 合”菜單的“顯示背景”選項時,觸發(fā)該函數(shù)。 } ③ 在“ ClassWizard ” 對 話 框 中 選 擇 “ CGraphics_czView ” 類 , 分 別 為IDC_DISPLAY_BACK、 IDC_DISPLAY_FORE、 IDC_OVERLAP 增加 COMMAND事件處理函數(shù)。rcDIB, pDocGetDocPalette())。 //輸 出 DIB ::PaintDIB(pDCm_hDC,amp。 =cxDIB。 CRect rcDIB。 //獲取 DIB 高度 int cyDIB=(int)::DIBHeight(lpDIB)。 //判斷 DIB 是否為空 if(hDIB!=NULL) { LPSTR lpDIB=(LPSTR)::GlobalLock((HGLOBAL)hDIB)。 // TODO: add draw code for native data here BeginWaitCursor()。實 現(xiàn)如下: void CGraphics_czView::OnDraw(CDC* pDC) { CGraphics_czDoc* pDoc = GetDocument()。 } 與 OnOpenBackground 函數(shù)基本相似,只需將文件句柄改成上述語句。用于打開前景圖像。 //至此打開 DIB 文件 } MessageBox(NULL,ll,NULL,MB_OK)。fe)) { CString ll。 CFileException fe。 strPathname= ()。 //獲取文件名 CFileDialog dlg(TRUE,bmp,*.bmp)。用于打開背景圖像。 if(m_palDIB!=NULL) delete m_palDIB。 m_sizeDoc=CSize(1,1)。 對 的修改 CGraphics_czDoc::CGraphics_czDoc() { // TODO: add onetime construction code here m_hDIB=NULL。 CSize m_sizeDoc。 HDIB m_hDIBn。 HDIB m_hDIB1。} CSize GetDocSize() const {return m_sizeDoc。為 CGraphics_czDoc 類增加處理函數(shù) 江南大學(xué)學(xué)士學(xué)位論文 26 // Attributes public: HDIB GetHDIB() const {return m_hDIB。 程序運行界面 1. 主界面 編譯工程文件 ,你可以看到如圖 418 所示的界面。在打開的快捷菜單中選擇“ Insert Dialog”命令,新建一個對話框資源。當(dāng)透明度為 0%,也就是完全不透明時,著色的像素將完全由所用的前景色代替,如圖 49; 我們再看一下透明度分別為 50%和 100%時得到的效果,如圖 416 及圖 417: 江南大學(xué)學(xué)士學(xué)位論文 23 圖 416 透明度為 50% 圖 417 透明度為 100% 用 VC++實現(xiàn)圖像復(fù)合 工程名稱: Graphics_cz 功能:將兩幅 BMP 圖像復(fù)合形成不同的藝術(shù)效果。 當(dāng)透明度為 0%,也就是完全不透明時,著色的像素將完全由所用的前景色代替,如圖 49;當(dāng)透明度大于 0%,如圖 415 所示: 圖 415 Add 模式 5. Subtract 實現(xiàn): 如 K=0, 則 C= C2; 否則, C=(C1+C2)*K。它采用了將背景色與前景色的數(shù)值相乘,然后再除以 255,便得到了疊加后圖像的顏色值。 4. Add 實現(xiàn): 如 K=0, 則 C= C2; 否則, C= C1* C2/255。當(dāng)透明度為 0%,也就是完全不透明時,著色的像素將完全由所用的前景色代替,如圖 49; 圖 413 透明度 50% 圖 414 透明度 100% 圖 413 和 414 演示了透明度分別為 50%和 100%時的情況。這種模式與運用遮光工具的效果相似。 我們看一下透明度分別為 50%和 100%時得到的效果,如圖 411 及圖 412: 圖 411 透明度 50% 圖 412 透明度 100% 3. Screen 實現(xiàn): 如 C2≠ 255, 則 C=C1*K+C2*( 1K); 否則, C=255。當(dāng)透明度為 0%,也就是完全不透明時,著色的像素將完全由所用的前景色代替,如圖 49;當(dāng)透明度大于 0%,背景圖像的像素逐漸溶入到前景圖像,兩者相混合,從而使前景圖像背后的像素顏色顯示出來。 我們看一下透明度為 50%時得到的效果,如圖 410: 圖 410 Normal 模式 2. Behind 實現(xiàn): C=C1*K+C2 效果: 通過對背景圖像的透明度設(shè)置,與前景圖像復(fù)合 。當(dāng)透明度為 0%,也就是完全不透明時,著色的像素將完全由所用的前景色代替,如圖 49;當(dāng)透明度為 100%,也就是完全透明時,著色的像素將完全由所用的背景色代替。 設(shè)復(fù)合圖象的像素的顏色值為 C,背景圖象的像素的顏色值為 C1,前景圖象的像素的顏色值為 C2,透明度為 K( 0≤ K≤ 1)。圖像復(fù)合就是采用這種原理,將前景圖象作為透明材料,覆蓋在背景圖像上。 圖 46 旋轉(zhuǎn)前的圖像 圖 47 旋轉(zhuǎn)后的圖像 圖像復(fù)合 當(dāng)物體是透明的時候,如玻璃或透明塑料,它不但會反射光,而且會透射光。 } LocalFree(hNewDIBBits)。 } } } memcpy(lpDIBBits,lpNewDIBBits,lLineBytes*lHeight)。ktag。k++) { *(lpDst+k)=*(lpSrc+k)。 for(k=0。amp。amp。amp。 j0=(LONG)(i*sina+j*cosa(lHeight1)*sina*(lWidth1)*cosa* +(l
點擊復(fù)制文檔內(nèi)容
研究報告相關(guān)推薦
文庫吧 www.dybbs8.com
備案圖鄂ICP備17016276號-1