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

正文內(nèi)容

江南大學學士畢業(yè)論文--圖像處理的程序設計--基于vc6(已改無錯字)

2022-12-29 18:08:34 本頁面
  

【正文】 sina*(lWidth1)*cosa* +(lWidth1)*)。 if((j0=0)amp。amp。(j0lWidth)amp。amp。(i0=0)amp。amp。(i0lHeight)) { lpSrc=(char*)lpDIBBits+lLineBytes*i0+j0*tag。 for(k=0。ktag。k++) { *(lpDst+k)=*(lpSrc+k)。 江南大學學士學位論文 20 } } else { for(k=0。ktag。k++) *((unsigned char*)lpDst+k)=255。 } } } memcpy(lpDIBBits,lpNewDIBBits,lLineBytes*lHeight)。 LocalUnlock(hNewDIBBits)。 LocalFree(hNewDIBBits)。 return true。 } 效果圖 我們用一幅 BMP 圖像的旋轉(zhuǎn)來演示圖像旋轉(zhuǎn)前后的情形。 圖 46 旋轉(zhuǎn)前的圖像 圖 47 旋轉(zhuǎn)后的圖像 圖像復合 當物體是透明的時候,如玻璃或透明塑料,它不但會反射光,而且會透射光。所以我們可以透過這種材料可以看到后面的東西。圖像復合就是采用這種原理,將前景圖象作為透明材料,覆蓋在背景圖像上。復合后的圖像尺寸以背景圖像為準,兩圖像重疊部分顯示出透明效果,其他部分仍為背景圖像,超出背景圖像的部分則被截掉。 設復合圖象的像素的顏色值為 C,背景圖象的像素的顏色值為 C1,前景圖象的像素的顏色值為 C2,透明度為 K( 0≤ K≤ 1)。并且以圖 48 為背景圖像,以圖 49 為前景圖像,各種效果的實現(xiàn)如下: 圖 48 背景圖像 圖 49 前景圖像 1. Normal 實現(xiàn): C=C1*K+C2*( 1K) 效果: 江南大學學士學位論文 21 在 Normal(普通)合成模式下,合成圖像的顯示與不透明度的設置有關。當透明度為 0%,也就是完全不透明時,著色的像素將完全由所用的前景色代替,如圖 49;當透明度為 100%,也就是完全透明時,著色的像素將完全由所用的背景色代替。當透明度介于兩者之間時,顯示的程度取決于透明度的設置,前景色與背景色互相滲透。 我們看一下透明度為 50%時得到的效果,如圖 410: 圖 410 Normal 模式 2. Behind 實現(xiàn): C=C1*K+C2 效果: 通過對背景圖像的透明度設置,與前景圖像復合 。也就是在前景圖像的背后著色,從而顯示出變換效果。當透明度為 0%,也就是完全不透明時,著色的像素將完全由所用的前景色代替,如圖 49;當透明度大于 0%,背景圖像的像素逐漸溶入到前景圖像,兩者相混合,從而使前景圖像背后的像素顏色顯示出來。當達到 100%時,背景圖像完全顯現(xiàn)。 我們看一下透明度分別為 50%和 100%時得到的效果,如圖 411 及圖 412: 圖 411 透明度 50% 圖 412 透明度 100% 3. Screen 實現(xiàn): 如 C2≠ 255, 則 C=C1*K+C2*( 1K); 否則, C=255。 效果: 如果前景圖象的像素的顏色值不為滿值,則復合圖像為兩者的加權和;否則,其像素值為滿值。這種模式與運用遮光工具的效果相似。其效果可以通過透明度來控制。當透明度為 0%,也就是完全不透明時,著色的像素將完全由所用的前景色代替,如圖 49; 圖 413 透明度 50% 圖 414 透明度 100% 圖 413 和 414 演示了透明度分別為 50%和 100%時的情況??梢钥吹奖尘皥D像的有些顏色被屏蔽掉了,從而幻化出一種特殊效果,形成一種別致的鏤空花紋。 4. Add 實現(xiàn): 如 K=0, 則 C= C2; 否則, C= C1* C2/255。 效果: 該圖像能把圖像上的背景顏色與前景顏色結合起來, 產(chǎn)生比兩種顏色都深的第三江南大學學士學位論文 22 種顏色,形成一種光線穿透圖像的幻燈片效果。它采用了將背景色與前景色的數(shù)值相乘,然后再除以 255,便得到了疊加后圖像的顏色值。例如,紅色與黃色的疊加色是橙色,紅色與綠色的疊加色是褐色,紅色與藍色的疊加色是紫色等。 當透明度為 0%,也就是完全不透明時,著色的像素將完全由所用的前景色代替,如圖 49;當透明度大于 0%,如圖 415 所示: 圖 415 Add 模式 5. Subtract 實現(xiàn): 如 K=0, 則 C= C2; 否則, C=(C1+C2)*K。 效果: 復合圖像為 兩者的像素值的差,產(chǎn)生一種反相效果,有點象照片的曝光。當透明度為 0%,也就是完全不透明時,著色的像素將完全由所用的前景色代替,如圖 49; 我們再看一下透明度分別為 50%和 100%時得到的效果,如圖 416 及圖 417: 江南大學學士學位論文 23 圖 416 透明度為 50% 圖 417 透明度為 100% 用 VC++實現(xiàn)圖像復合 工程名稱: Graphics_cz 功能:將兩幅 BMP 圖像復合形成不同的藝術效果。 編輯菜單資源 雙擊 ResourceView 面 板中的 Menu 項,展開菜單資源,選擇 IDR_MAINFRAME,在右邊的編輯區(qū)中打開菜單資源,添加“圖像復合”菜單項,其中包括如下菜單命令: ID Caption IDC_OPEN_BCKGROUND 打開背景 IDC_OPEN_FOREROUND 打開前景 IDC_DISPLAY_BACK 顯示背景 IDC_DISPLAY_FORE 顯示前景 IDC_OVERLAP 復合 編輯對話框資源 在 ResourceView 面板中,右擊“ Dialog”資源。在打開的快捷菜單中選擇“ Insert Dialog”命令,新建一個對話框資源。將新建對話框資源 ID 改為“ IDD_DIALOG_OVERLAP”,然后在對話框中添加如下資源: 江南大學學士學位論文 24 復合類型選擇: 前景圖像設置: 啟動類向?qū)В?ClassWizard) ,創(chuàng)建 CDlgOverlap 類關聯(lián) IDD_DIALOG_OVERLAP 資源,在“ MFC ClassWizard”窗口中選擇“ Member Variable”屬性頁,為 IDC_RADIO_NORMAL和 IDC_EDIT_OPACITY 增加成員變量 m_Opacity 和 m_type,類型均為 int。 程序運行界面 1. 主界面 編譯工程文件 ,你可以看到如圖 418 所示的界面。 類型 ID Caption Group box IDC_STATIC 復合類型選擇 Radio button IDC_RADIO_NORMAL(將 Group 勾上) Normal Radio button IDC_RADIO_BEHIND Behind Radio button IDC_RADIO_SCREEN Screen Radio button IDC_RADIO_ADD Add Radio button IDC_RADIO_SUBTRACT Subtract Static text IDC_STATIC 不透明度: Edit Box IDC_EDIT_OPACITY Static text IDC_STATIC % 類型 ID Caption Group box IDC_STATIC 前景圖像設置 Static text IDC_STATIC 是否需平移 ? Static text IDC_STATIC X 軸 : Edit Box IDC_EDIT_XOFFSET Static text IDC_STATIC Y 軸 : Edit Box IDC_EDIT_YOFFSET Static text IDC_STATIC 是否需旋轉(zhuǎn) ? Static text IDC_STATIC 旋轉(zhuǎn)角度 : Edit Box IDC_EDIT_ROTATE 江南大學學士學位論文 25 圖 418 主界面 2. 圖像復合 當選擇完背景圖像和前景圖像,點擊菜單中的“復合”,可得如 圖 419 所示的界面: 圖 419 圖像復合對話框 實現(xiàn)代碼 1. 修改 Doc 文件 為 CGraphics_czDoc 類增加處理函數(shù) 江南大學學士學位論文 26 // Attributes public: HDIB GetHDIB() const {return m_hDIB。} CPalette* GetDocPalette() const {return m_palDIB。} CSize GetDocSize() const {return m_sizeDoc。} // Operations public: HDIB m_hDIB。 HDIB m_hDIB1。 HDIB m_hDIB2。 HDIB m_hDIBn。 CPalette* m_palDIB。 CSize m_sizeDoc。 對 的修改 CGraphics_czDoc::CGraphics_czDoc() { // TODO: add onetime construction code here m_hDIB=NULL。 m_palDIB=NULL。 m_sizeDoc=CSize(1,1)。 } CGraphics_czDoc::~CGraphics_czDoc() { if(m_hDIB!=NULL) ::GlobalFree((HGLOBAL)m_hDIB)。 if(m_palDIB!=NULL) delete m_palDIB。 } 2. 為菜單資源增加處理函數(shù) ① 在“ ClassWizard ” 對 話 框 中 選 擇 “ CGraphics_czDoc ”類,分別為IDC_OPEN_BCKGROUND、 IDC_OPEN_FOREROUND、增加 COMMAND 事件處理函數(shù)。 OnOpenBackground 函數(shù) 選擇“圖像復合”菜單的“打開背景”選項時,觸發(fā)該函數(shù)。用于打開背景圖像。 void CGraphics_czDoc::OnOpenBackground() { // TODO: Add your mand handler code here 江南大學學士學位論文 27 CString strPathname。 //獲取文件名 CFileDialog dlg(TRUE,bmp,*.bmp)。 ()。 strPathname= ()。 //打開 DIB 文件 CFile file。 CFileException fe。 if(!(strPathname,CFile::modeRead|CFile::shareDenyWrite,amp。fe)) { CString ll。 ll=打開出錯 !。 MessageBox(NULL,ll,NULL,MB_OK)。 } m_hDIB1=m_hDIBn=::ReadDIBFile(file)。 //至此打開 DIB 文件 } OnOpenForeground 函數(shù) 選擇“圖像復合”菜單的“打開前景”選項時,觸發(fā)該函數(shù)。用于打開前景圖像。 void CGraphics_czDoc::OnOpenForeground() { ?? m_hDIB2=::ReadDIBFile(file) 。 } 與 OnOpenBackground 函數(shù)基本相似,只需將文件句柄改成上述語句。 ② OnDraw 函數(shù) 當窗口需要重繪時,調(diào)用該函數(shù)。實 現(xiàn)如下: void CGraphics_czView::OnDraw(CDC* pDC) { CGraphics_czDoc* pD
點擊復制文檔內(nèi)容
研究報告相關推薦
文庫吧 www.dybbs8.com
備案圖片鄂ICP備17016276號-1