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

正文內(nèi)容

畢業(yè)設(shè)計(jì)---圖象邊緣處理系統(tǒng)-閱讀頁(yè)

2024-08-25 10:56本頁(yè)面
  

【正文】 bits colorsBOOL declspec (dllexport) GetPCXInfo(const char *,int *,int *,int *,int *,int * )。 ///////////////////////// TGA ///////////////////////// hDib filenameHGLOBAL declspec (dllexport) LoadTGA( const char * )。// Success filename hDibBOOL declspec (dllexport) SaveTGA( const char *, HGLOBAL )。// Success filename w h planes bits colorsBOOL declspec (dllexport) GetTIFInfo(const char *,int *,int *,int *,int *,int * )。 ////////////////////////// JPG //////////////////////// hDib filenameHGLOBAL declspec (dllexport) LoadJPG( const char * )。// Success filename hDibBOOL declspec (dllexport) SaveJPG( const char *, HGLOBAL, int )。WORD declspec (dllexport) Popularity([ZK() unsigned char *pBits, int nBits, int nWidth, int nHeight, BYTE ColorMap[][3] )。ifdef cplusplus }endif 另外,為處理出錯(cuò)信息,還定義了一個(gè) 文件來(lái)聲明讀寫圖像文件時(shí)的錯(cuò)誤代碼,其內(nèi)容如下:// ifndef ERRORS_H define ERRORS_H  。// Operate errorsdefine IMAGELIB_UNSUPPORTED_FILETYPE 200define IMAGELIB_HDIB_NULL 201define IMAGELIB_LOGICAL_PALETTE_CREATION_ERROR 202define IMAGELIB_NO_PALETTE_FOR_HIGH_COLOR 203define IMAGELIB_STRETCHDIBITS_ERROR 204define IMAGELIB_PALETTE_QUANTIZE_ERROR 205沈陽(yáng)工程學(xué)院畢業(yè)論文 第 2 章 圖像處理概述及開(kāi)發(fā)工具簡(jiǎn)介 11 define IMAGELIB_ATTEMPT_CHANGE_TO_SAME 206define IMAGELIB_ROTATION_VALUE_ERROR 207define IMAGELIB_ROTATE_ERROR 208?! ?.將 、 兩個(gè)頭文件及 庫(kù)文件拷貝到當(dāng)前工程目錄或是在 VC++集成開(kāi)發(fā)環(huán)境中設(shè)置其所在的路徑。4.在要用到 的 C++頭文件(.h)或?qū)崿F(xiàn)文件(.cpp)中用include  和include 兩個(gè)語(yǔ)句將兩個(gè)頭文件包含到應(yīng)用程序的設(shè)計(jì)中。 圖像處理所用到 CDibObject 類的設(shè)計(jì)由于 MFC 沒(méi)有封裝處理與 DIB 位圖相關(guān)的 Windows API 函數(shù)的類 [2],所以本著面向?qū)ο蟮乃枷?,有必要設(shè)計(jì)一個(gè) CDibObject 類來(lái)完成如下功能:(1)讀取某種類型的圖像文件;(2)獲取圖像的相關(guān)信息;(3)顯示圖像;(4)以相同或不同類型格式的圖像文件保存該圖像。 公用方法的設(shè)計(jì)根據(jù)對(duì) CDibObject 類的基本要求,它至少應(yīng)該具有下述方法(成員函數(shù)):1.構(gòu)造函數(shù):該類應(yīng)提供三個(gè)不同版本的構(gòu)造函數(shù),一個(gè)是無(wú)參構(gòu)造函數(shù),用于動(dòng)態(tài)創(chuàng)建對(duì)象;一個(gè)是接受文件名作為參數(shù)的構(gòu)造函數(shù),用于創(chuàng)建一個(gè)與由文件名指定的圖像文件相對(duì)應(yīng)的有意義的對(duì)象;另外,還應(yīng)提供一個(gè)復(fù)制構(gòu)造函數(shù),以便將一個(gè) CDibObject 類對(duì)象的屬性直接復(fù)制到另一個(gè) CDibObject 類對(duì)象中。3.Save()函數(shù):該函數(shù)用指定的文件名將保存在 CDibObject 類對(duì)象中的當(dāng)前圖像保存為一個(gè)圖像文件,該文件名同時(shí)也應(yīng)指定保存圖像的文件類型。調(diào)用此繪圖函數(shù)時(shí),也應(yīng)該指定繪制圖像的位置坐標(biāo)。這些函數(shù)用來(lái)獲取和設(shè)置圖像的各種信息,如圖像的類型、高度、寬度、位平面數(shù)、單個(gè)像素的位數(shù)、圖像使用的顏色數(shù)等。 設(shè)計(jì)類的屬性CDibObject 類主要應(yīng)設(shè)計(jì)如下屬性(成員變量)(1)char*m_pszFilename:此變量用來(lái)保存圖像文件名。值得注意的是,圖像的類型必須使用“” 定義的原始順序,它與“”中的函數(shù) FileType 返回的 int 類型的值相對(duì)應(yīng),對(duì)此不能進(jìn)行改變。實(shí)際上無(wú)論什么類型的圖像文件,如果要在 Windows 操作系統(tǒng)中顯示,都應(yīng)該使用 DIB 位圖格式。(5)int m_nX,m_nY:用這兩個(gè)變量確定繪制圖像的左上角位置。(7)int m_nPaletteCreationType:當(dāng)需要通過(guò)顏色還原一幅具有調(diào)色板的圖像時(shí)使用此變量確定調(diào)色板類型。(8)LOGPALETTE *m_pLogPal:該指針型變量用來(lái)指向圖像所使用的邏輯調(diào)色板。該值為 0 到 100 之間的整數(shù),其值越大,圖像質(zhì)量越好,但文件尺寸也將越大。沈陽(yáng)工程學(xué)院畢業(yè)論文 第 2 章 圖像處理概述及開(kāi)發(fā)工具簡(jiǎn)介 13 使用 CDibObject 類 添加 CDibObject 類定義文件由于本文所研究的課題是對(duì)圖像的邊緣及輪廓的處理這樣就需要在工程中添加CdibObject 類。選擇 VC++集成開(kāi)發(fā)環(huán)境的 Project\Add to project\Files...菜單項(xiàng),系統(tǒng)打開(kāi)如 “Insert Files into Project”對(duì)話框。這樣便將上一節(jié)所設(shè)計(jì)的 CDibObject 類添加到當(dāng)前的工程中,從而可以使用類中提供的方法和屬性。再將 動(dòng)態(tài)鏈接庫(kù)相關(guān)的“” 、“”和“”復(fù)制到當(dāng)前工程目錄。這樣便可在所建應(yīng)用程序中使用 動(dòng)態(tài)鏈接庫(kù)提供的多格式圖像文件的打開(kāi)和保存函數(shù),輕松完成圖像文件的讀寫工作。我們是常的用經(jīng)典的邊緣檢測(cè)方法是構(gòu)造對(duì)像素灰度級(jí)階躍變化敏感的微分算子,如 robert 梯度算子、Sobel 梯度算子等,其邊緣檢測(cè)速度快,但得到的往往是斷續(xù)的、不完整的結(jié)構(gòu)信息,這類方法對(duì)噪聲較為敏感,為了有效抑制噪聲,一般都首先對(duì)原圖像進(jìn)行平滑,再進(jìn)行邊緣檢測(cè)就能成功地檢測(cè)到真正的邊緣。并力求在 VC 的環(huán)境下來(lái)實(shí)現(xiàn)它們,以求達(dá)到對(duì)圖像處理的最佳效果。 需求分析需求分析工作是軟件開(kāi)發(fā)周期中重要的一步,通過(guò)需求分析可以把軟件的功能和性能需求完整、準(zhǔn)確的表達(dá)給開(kāi)發(fā)人員,從而避免在以后的開(kāi)發(fā)過(guò)程中出現(xiàn)一些不必要的問(wèn)題。 系統(tǒng)業(yè)務(wù)流程圖打開(kāi)文件 選取圖象 處理圖象 保存圖象 多次處理 概念設(shè)計(jì)概要設(shè)計(jì)基礎(chǔ)是完成需求分析后提供的需求說(shuō)明書(shū),用概念數(shù)據(jù)模型表示數(shù)據(jù)及其相互間的關(guān)系,這種數(shù)據(jù)模型是與 DBMS 無(wú)關(guān)的、面向現(xiàn)實(shí)世界的、易如理解的數(shù)據(jù)模型,其獨(dú)立于計(jì)算機(jī)的數(shù)據(jù)模型,獨(dú)立于計(jì)算機(jī)的軟硬件系統(tǒng),與用戶進(jìn)行交流十分方便。這種數(shù)據(jù)模式能真實(shí)地反應(yīng)用戶要求的實(shí)際情況,是一種容易被人們理解的畢業(yè)論文 第 3 章 系統(tǒng)需求分析 16 直觀的數(shù)據(jù)庫(kù)結(jié)構(gòu)模式。概念性數(shù)據(jù)在用戶和設(shè)計(jì)者之間建立了橋梁,是設(shè)計(jì)數(shù)據(jù)庫(kù)結(jié)構(gòu)的基礎(chǔ)。1.功能要求(1)整體結(jié)構(gòu)合理,風(fēng)格一致,模塊化結(jié)構(gòu),界面清晰,接口靈活,操作簡(jiǎn)便。(3)完善的數(shù)據(jù)輸入,維護(hù),輸出。(5)容錯(cuò)性能高,某個(gè)用戶的操作錯(cuò)誤不會(huì)引起整個(gè)系統(tǒng)的癱瘓,每一功能的操作都有信息提示以免重復(fù)操作,錯(cuò)誤操作有警告,以便用戶及時(shí)改正。(2)創(chuàng)建菜單,主框架。由于 MFC 中已有 DDB 操作的 Cbitmap 類,因此,很直觀的想法是以 Cbitmap 類為父類派生出 CDib 類。因?yàn)槭紫龋珻bitmap 類是為 DDB 的操作而設(shè)計(jì)的,其中沒(méi)有處理 Dib 類的功能,因此CDib 類不能從中繼承任何可用功能。此外,Cbitmap 類沒(méi)有提供有效的文件操作機(jī)制,DIB 主要是一種“外部”位圖,即主要以文件形式進(jìn)行存儲(chǔ)和交換,所以 CDib 類應(yīng)該能很好的處理文件操作。它提供了許多有用的特性,包括對(duì)文件串行化的支持,運(yùn)行時(shí)的類信息和對(duì)象診斷輸出等。另外,Cobject 類具有最低限度的成員數(shù)據(jù)和函數(shù),從 Cobject 類派生類所花的代價(jià)最低。所以,以 Cobject 類作為基類來(lái)派生 CDib 類。(4)修改 CdibProcessDoc 文檔類,修改 Cmainfrm 主框類。(5)修改幫助對(duì)話框。(7)用 VC 工具給程序打包。它由下式給出:沈陽(yáng)工程學(xué)院畢業(yè)論文 第 4 章 系統(tǒng)總體設(shè)計(jì) 18 G(x,y)={[f(x,y)f(x+1,y+1)]+[f(x,y)f(x+1,y+1)]}其中 f(x,y)是具有像素坐標(biāo)的輸入圖像,平方根運(yùn)算使該處理類似于在人類視覺(jué)系統(tǒng)中發(fā)生的過(guò)程。(3) prewitt 邊緣算子兩個(gè)卷積核形成了 Prewitt 邊緣算子。(4)Krisch 邊緣算子8 個(gè)卷積核組成了 Krisch 邊緣算子。 (5)高斯拉普拉斯算子拉普拉斯算子是對(duì)二維函數(shù)進(jìn)行運(yùn)算的二階導(dǎo)數(shù)算子。 系統(tǒng)的結(jié)構(gòu)功能模塊本系統(tǒng)結(jié)構(gòu)分為 3 大功能模塊如圖 41,分別為:(1) 文件操作模塊:對(duì)文件的打開(kāi)、顯示及保存,如圖 42。簡(jiǎn)單的線條就能讓人理解所要描述的物體。利用所提取的邊緣可以識(shí)別出特定的物體,測(cè)定物體的面積及周長(zhǎng),求兩幅圖像的對(duì)應(yīng)點(diǎn)等,所以邊緣檢測(cè)與提取處理是復(fù)雜的圖像識(shí)別,圖像理解的關(guān)鍵。它可分為圖像的統(tǒng)計(jì)特征和圖像的視覺(jué)特征來(lái)兩類。利用這兩類圖像特征把圖像分解成一系列有意義的目標(biāo)或區(qū)域的過(guò)程稱為圖像的分割。所謂邊緣(或邊沿)是指其周圍像素灰度有階躍變化或屋頂變化的那些像素的集合。因此,它是圖像分割所依賴的重要特征。經(jīng)典的邊緣提取方法是考察圖像的每個(gè)像素在某個(gè)鄰域內(nèi)灰度的變化,利用邊緣鄰近一階或二階方向?qū)?shù)變化規(guī)律。這種方法稱為邊緣檢測(cè)局部算子法。如果一個(gè)像素落在圖像中某一個(gè)物體的邊界上,那么它的鄰域?qū)⒊蔀橐粋€(gè)灰度級(jí)的變化帶。邊緣檢測(cè)算子檢查每個(gè)像素的鄰域并對(duì)灰度的變化率進(jìn)行量化,也包括方向的確定。 邊緣檢測(cè)算子介紹本文用到以下幾種邊緣檢測(cè)算子。Roberts 邊緣檢測(cè)算子是一種局部差分算子尋找邊緣的算子 [8]。下面為 Robert 算法編程實(shí)現(xiàn)時(shí)所用到的函數(shù)源代碼:BOOL WINAPI RobertDIB(LPSTR lpDIBBits, LONG lWidth, LONG lHeight){//指向源圖像的指針LPSTR lpSrc。//指向緩存 DIB 圖像的指針LPSTR lpNewDIBBits。//循環(huán)變量long i。//像素值double result。//暫時(shí)分配內(nèi)存,以保存新圖像hNewDIBBits = LocalAlloc(LHND, lWidth * lHeight)。}//鎖定內(nèi)存lpNewDIBBits = (char * )LocalLock(hNewDIBBits)。memset(lpDst, (BYTE)255, lWidth * lHeight)。 j 0。i lWidth1。//指向目標(biāo)圖像第 j 行,第 i 個(gè)象素的指針lpDst = (char *)lpNewDIBBits + lWidth * j + i。pixel[1] = (unsigned char)*(lpSrc + 1)。pixel[3] = (unsigned char)*(lpSrc lWidth + 1)。*lpDst = (unsigned char)result。//釋放內(nèi)存LocalUnlock(hNewDIBBits)。//返回return TRUE。如圖 51 所示的兩個(gè)卷積核形成了 sobel 邊緣算子,圖像的每個(gè)點(diǎn)都用這兩個(gè)核做卷積,一個(gè)核對(duì)通常的垂直邊緣響應(yīng)最大,而另一個(gè)對(duì)水平邊緣響應(yīng)最大。運(yùn)算結(jié)果是一幅邊緣圖像。LPSTR lpDst2。HLOCAL hNewDIBBits1。HLOCAL hNewDIBBits2。long j。// 模板寬度int iTempW。// 模板中心元素 X 坐標(biāo)int iTempMX。//模板數(shù)組FLOAT aTemplate[9]。if (hNewDIBBits1 == NULL){// 分配內(nèi)存失敗return FALSE。// 暫時(shí)分配內(nèi)存,以保存新圖像hNewDIBBits2 = LocalAlloc(LHND, lWidth * lHeight)。}// 鎖定內(nèi)存畢業(yè)論文 第 5 章 系統(tǒng)詳細(xì)設(shè)計(jì)與實(shí)現(xiàn) 24 lpNewDIBBits2 = (char * )LocalLock(
點(diǎn)擊復(fù)制文檔內(nèi)容
環(huán)評(píng)公示相關(guān)推薦
文庫(kù)吧 www.dybbs8.com
備案圖鄂ICP備17016276號(hào)-1