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

正文內(nèi)容

基于鏈碼的二值圖像輪廓跟蹤技術(shù)的研究與實現(xiàn)-資料下載頁

2024-11-06 04:13本頁面

【導(dǎo)讀】的一個新興研究領(lǐng)域,得到了人們廣泛的關(guān)注。察者對物體一目了然。同時,輪廓里還包含了豐富的內(nèi)在信息,如方向和形狀等。廓看似較為單調(diào),但是人類仍然能夠通過物體的輪廓來確定其所要表達(dá)的內(nèi)容。領(lǐng)域中,圖像的輪廓跟蹤技術(shù)占有著十分重要的地位,因此被視為圖像理解和分析的基礎(chǔ)。法、邊緣檢測法、區(qū)域增長法、能量模型法等等,但每種算法都有其優(yōu)點和弊端。鏈碼作為一種有效的表達(dá)方式,被廣泛應(yīng)用于區(qū)域邊界的描繪和圖像編碼中,像進(jìn)行逐行掃描,找出起始點并完成對所有輪廓點的跟蹤。的基礎(chǔ)上獲得,而下一個像素點的提取則要在獲取當(dāng)前像素點的基礎(chǔ)上進(jìn)行。實現(xiàn)的算法對圖像邊緣的判斷較為精確,將有利于包括特征提取在內(nèi)的后續(xù)圖像處理。跟蹤的具體過程。而本文則介紹了一種簡單的方法,通過動態(tài)數(shù)組的使用,不但能顯示輪。廓跟蹤動態(tài)效果,還能查看所跟蹤的像素點的鏈碼值。

  

【正文】 算法生成一個闕值,闕值就像是個門檻,比它大就是白,比它小就是黑。如果圖像中某像素的灰度小于該闕值,則將該像素的灰度值設(shè)置為 0 或 255,否則灰度值設(shè)置為 255 或 0。經(jīng)過闕值處理后的 這張黑白圖像就叫二值圖像 。 或者可以直接畫一張只有黑白兩種顏色的畫面,這張畫也是二值 圖像 。 B 移位寄存器 顯示器 15 的定義 鏈碼是對坐標(biāo)增量序列存儲結(jié)構(gòu)的進(jìn)一步改進(jìn)與緊縮。對一個連通的像素序列來說,與某一個像素連通的后繼像素只可能是如圖 1 所示的有 0— 7 表示的八個方向中的一個。因此,對線 圖像 來說,除了像素序列的起始像素外,任一后繼像素均可用 0— 7 八個像素中的一個來唯一確定,也即可以用三位二進(jìn)制位來唯一地描述該后繼像素坐標(biāo),它能更進(jìn)一步地節(jié)約存儲空間。 鏈碼被廣泛應(yīng)用于 區(qū)域邊界的描繪和圖像編碼中,在輪廓跟蹤中它既能可用來表示相鄰點間的位置關(guān)系,又可在跟蹤過程中控制各鄰點的檢測順序,還可以用鏈碼控制跟蹤的方向。 由以上的介紹可以看出,用鏈碼來記錄輪廓信息是合適的,它既可以用來表示相鄰邊界點間的位置關(guān)系,又可在跟蹤過程中控制各鄰點的檢測程序,如果單純地從上到下一行一行掃描,不僅效率低下,而且對以后的光順工作也極不方便,因此掃描不容易將輪廓信息記錄成一個便于處理的數(shù)據(jù)結(jié)構(gòu),它不是按輪廓的順序來存儲的。 如圖 3— 2, 鏈碼是用中心像素指向它的八個相鄰點的方向來定義的,鏈碼值加 1, 其所指方向就按逆時針方向旋轉(zhuǎn) 45 度。輪廓的跟蹤可依鏈碼的方向進(jìn)行,下一跟蹤點的取得依賴于上一輪廓點,從而避免了對所有像素點的掃描,增加了輪廓跟蹤的效率,基于鏈碼的輪廓值可由鏈碼的解碼來完成,解碼思路和其譯碼的思路是一致的,由以上可知鏈碼方向和像素坐標(biāo)有對應(yīng)關(guān)系,因此可以構(gòu)造一個數(shù)組來完成解碼過程。對 X 坐標(biāo): X[8]={1,1, 0, 1, 1, 1, 0, 1};對 Y 坐標(biāo): Y[8]={0, 1, 1, 1, 0, 1, 1, 1}。這樣可由鏈碼序列得到相應(yīng)的輪廓的坐標(biāo)值。如 表 31 3 2 1 4 P 0 5 6 7 圖 32 像素點的相鄰點 表 31 鄰點與中心點的坐標(biāo)關(guān)系 鏈碼值 0 1 2 3 4 5 6 7 X 坐標(biāo)偏移 1 1 0 1 1 1 0 1 Y 坐標(biāo)偏移 0 1 1 1 0 1 1 1 輪廓跟蹤技術(shù) 理論基礎(chǔ) 一般如果圖像是非二值化圖像,用閾值法可以先轉(zhuǎn)化為二值化圖像。 16 跟蹤效果邊界效果的好壞主要取決于連個因素,第一個因素是跟蹤的起始點的選取,起始點的選取直接影響到跟蹤的精確度,同時如果起始點選的不好,還給算法的設(shè)計增加難度。第二個因素是跟 蹤準(zhǔn)則的選取,準(zhǔn)則既要便于理解和分析,又要便于程序的設(shè)計。邊界跟蹤的基本方法是:先根據(jù)某些嚴(yán)格的“探測準(zhǔn)則”找出目標(biāo)物體輪廓上的像素,再根據(jù)這些像素的某些特征用一定的“跟蹤準(zhǔn)則”找出目標(biāo)物體上的其他像素。一般的跟蹤準(zhǔn)則是:邊緣跟蹤從圖像左 下 角開始逐像點掃描,當(dāng)遇到邊緣點時則開始順序跟蹤,直至跟蹤的后續(xù)點回到起始點或其后續(xù)點再沒有新的后續(xù)點為止。如果不止一個后續(xù)點,則按上述連接準(zhǔn)則選擇加權(quán)平均最大的點為后續(xù)點,另一次要的后續(xù)點作為新的邊緣跟蹤起點另行跟蹤。一條線跟蹤完后 ,接著掃描下一個未跟蹤點,直至圖像內(nèi)的所 有邊緣跟蹤完畢。 從圖 3— 3 中可以看出,基于鏈碼的基礎(chǔ)上,中心像素可以跟蹤的方向有 8 個,對每個方向制定了方向編號及偏移量,由于圖像文件的讀取是從 左 向右,從下向上的順序,因此選取圖像的最左下方的像素點作為起始點(即讀取像素時的第一個黑點)。當(dāng)找到起始點,把該點記錄下來,定義初始的跟蹤方向是左上方 0 方向,判斷該點是否為目標(biāo)點,是則把該目標(biāo)點作為跟蹤的起始開始點,逆時針 90176。作為新的跟蹤方向,繼續(xù)檢測該新的跟蹤方向上的點;若不是目標(biāo)點則沿順時針 45176。,一直 到找到目標(biāo)點。找到目標(biāo)點后,在當(dāng)前跟蹤方向的基礎(chǔ)上,逆時針 旋轉(zhuǎn) 90176。作為新的跟蹤方向,用同樣的方法跟蹤下一個邊界點,直到回到起始點位置。 圖 3— 4 示意的是邊界跟蹤的過程,圖中黑點表示邊界點,白點是圖像的內(nèi)部點。跟蹤的初始點是最左下方的黑點(即最下一行的最左的黑點),跟蹤的初始方向設(shè)定為左上方 45176。跟蹤開始后,初始點沿初始跟蹤方向檢測該方向是否有黑點(檢測距離為一個像素點),因為 該 方向有邊界點,如是,則保存初始點,將檢測到的點作為新的初始點,在原來檢測方向基礎(chǔ)上,逆時針旋轉(zhuǎn) 90176。作為新的跟蹤方向,不是目標(biāo)點則沿順時針旋轉(zhuǎn)45176。,沿新跟蹤方向繼續(xù)檢測,直到找到像素 ,然后將跟蹤方向逆時針旋轉(zhuǎn) 90176。作為新的跟蹤方向。重復(fù)上面的方法,不斷改變跟蹤方向,直到找到新的邊界點。找到新邊界點后,將舊邊界點保存,將新檢測到的點作為新的初始點,這樣不斷重復(fù)上述過程,直到檢測點回到最開始的檢測點位置。 ( 1, 1) ( 0, 1) ( 1, 1) ● ● ● ↖ ↑ ↗ ﹨ ∣ / 0 ﹨ ∣ 1 / 2 ( 1, 0) ﹨∣/ ( 1, 0) ● ← — — — ● — — — → ● 7 / ∣ ﹨ 3 / ∣ ﹨ / 6 ∣ 5 4﹨ ↙ ↓ ↘ ● ● ● (1, 1) (0, 1) (1, 1) 圖 33 中心像素跟蹤的 8 個方向編號及偏移量 17 ● ○ ○ ○ ↖ ○ ← ● ● ○ ↙ ↖ ○ ○ ○ ← ● ● ↙ ↖ ○ ○ ○ ● 圖 34 邊界跟蹤示意圖 輪廓跟蹤技術(shù) 概要設(shè)計 如圖 35,首先要有一個可視化的工作界面,然后載入目標(biāo) 圖像 后,點擊輪廓跟蹤的按鈕。對其中一個目標(biāo) 圖像 跟蹤完畢后,程序會檢測源 圖像 中是否存在其他未進(jìn)行輪廓跟蹤的圖案 。如果存在,繼續(xù)對下一個目標(biāo) 圖像 進(jìn)行輪廓跟蹤,如果不存在,則結(jié)束 ,并將輪廓點顯示出來 。 yes no 圖 3— 5 概要設(shè)計流程圖 輪廓跟蹤技術(shù) 詳細(xì)設(shè)計 ( 1)首先要設(shè)計出具有人機(jī)交互的界面。打開 Microsoft Visual ,選擇文件菜單的新建,便會彈出一對話框選擇工程。選中 MFC AppWizard[exe],在工程名稱中輸入 ch1_1,打開工作界面 載入源圖像 對其中一個目標(biāo)圖像進(jìn)行輪廓跟蹤 是否還有未跟蹤的 目標(biāo)圖像? 結(jié) 束 保存鏈碼值 18 然后選擇單文檔作為界面。 ( 2)界面應(yīng)該有兩大功能,一個是載入 圖片在界面上顯示,一個就是對此圖片進(jìn)行輪廓跟蹤。因此設(shè)計兩個菜單即可。第一個菜單是打開,包括保存,另存為,關(guān)閉等子菜單,第二個菜單就是輪廓跟蹤,點擊它便可顯示輪廓跟蹤的動態(tài)效果。 ( 3)在核心部分輪廓跟蹤程序中,首先要獲取載入圖片的長度與寬度,然后從上到下,從左到右對像素點依次掃描,并要求出每一個像素點的像素值。如果值為黑色,則表明已找到輪廓的起始點,然后按照上一節(jié)所闡述的跟蹤方法,對輪廓像素點進(jìn)行跟蹤 ,如果掃描到的點的像素值為黑色,則表明此點為輪廓點,對此點進(jìn)行保存 ,然后繼續(xù)跟蹤下去。 ( 4)當(dāng)掃描到的 點等于起始點時,說明跟蹤工作已經(jīng)完成,輪廓點已經(jīng)全部得出 ,這時就要實現(xiàn)動態(tài)的顯示效果。 動態(tài)效果的意思就是將輪廓由像素點按照動畫的形式描繪出來。由于此前所有的輪廓點均以保存,于是可以采 用計時器, 每顯示一個點,就暫停一個時間間隔,然后顯示下一個點。間隔時間可以設(shè)置小一點,這樣可以利用人的視覺停留的特點,使畫面看起來就是動態(tài)的形式。 CView 類概述 視圖類 CView 控制的是應(yīng)用程序的客戶區(qū)。它代表的是問檔類中包含的視圖端口信息,該類允許用戶通過鼠標(biāo)和鍵盤輸入自己需要的信息。 CView 類簡化了文檔中打印和 打印玉蘭的實現(xiàn)過程。 CView 類提供用戶定義視圖類的基本功能。視圖通常是和某個文檔項相連的,而且充分文檔和用戶之間的媒介。視圖將文檔的 圖像 顯示在屏幕上或者通過打印機(jī)打印出來,并且對用戶的文檔操作進(jìn)行解釋。 視圖是框架窗口的一部分,多個視圖可以共享一個框架窗口。當(dāng)用戶打開一個新窗口時,應(yīng)用程序主框架就會創(chuàng)建一個新視圖并將這個視圖和對應(yīng)的文檔相連。 一個試圖只能和一個文檔相連,但一個文檔可以擁有多個視圖,例如文檔的內(nèi)容可以顯示在列分窗口中或者顯示在 MDI 應(yīng)用程序的多個字窗口中。 視圖顯示對應(yīng)文檔的數(shù)據(jù),文檔為 視圖提供相關(guān)數(shù)據(jù)的必要詳細(xì)信息,視圖不僅可以直接訪問文檔的數(shù)據(jù)成員,而且還可以調(diào)用文檔類中的成員函數(shù)。 界面設(shè)計 MFC 簡介 MFC,微軟 基礎(chǔ)類 (Microsoft Foundation Classes),實際上是微軟提供的 ,用于在 C++環(huán)境下編寫應(yīng)用程序的一個框架和引擎 ,VC++是 WinOS 下開發(fā)人員使用的專業(yè) C++ SDK(SDK, Standard SoftWare Develop Kit,專業(yè)軟件開發(fā)平臺 ),MFC 就是掛在它之上的一個輔助軟件開發(fā)包 。它 同 VCL 類似,是一種 Application Framework,隨微軟 Visual C++ 開發(fā)工具發(fā)布。該類庫提供一組通用的可重用的類庫供開發(fā)人員使用。大部分類均從 CObject 直接或間接 19 派生,只有少部分類例外。 MFC 應(yīng)用程序的總體結(jié)構(gòu)通常由 由開發(fā)人員從 MFC 類派生的幾個類和一個 CWinApp 類對象(應(yīng)用程序?qū)ο螅┙M成。 MFC 提供了 MFC AppWizard 自動生成框架 。 Windows 應(yīng)用程序中, MFC 的主包含文件為 “ ” 。此外 MFC 的部分類為 MFC/ATL 通用,可以在 Win32 應(yīng)用程序中單獨(dú)包含并使 用這些類 。 MFC 載入 圖像 過程 當(dāng)我們每次運(yùn)行程序,彈出界面時 MFC 自動生成窗口,因此它也為我們建立了一個文檔。所以 CMYARCDoc 中的 OnNewDocument()函數(shù)被調(diào)用,初始化 CMYARCDoc 中的成員變量。我們把 NewDIB(, ,8)放在該函數(shù)內(nèi)初始化,這個函數(shù)的功能是:獲得一塊較小的內(nèi)存圖像地址,并保存在 m_hDIB 句柄中。因為我們使用的時設(shè)備無關(guān)圖,所以執(zhí)行此函數(shù)后 CMYARCDoc 的成員變量 m_hDIB 指針將指向內(nèi)存中的圖像區(qū)域 。這樣我們在每次使用 m_hDIB 指針變量時不會產(chǎn)生錯誤,由于 CMYARCView 中OnDraw(CDC* pDC)函數(shù)直接引用了 CMYARCDoc 的成員變量。所以我們在編寫程序時勿忘,先初始化再使用。當(dāng)我們“載入”圖像時, CMYARCDoc 中的 OnOpenDocument(LPCTSTR lpszPathName)函數(shù)被調(diào)用,很顯然大家都了解這函數(shù)的功能,目的是為了打開文檔。該函數(shù)調(diào)用了 ReadImgFile(lpszPathName)函數(shù)獲得真正的圖像 m_hDIB 指針,使得 m_hDIB 指針指向載入圖像的內(nèi) 存地址。 ReadImgFile(lpszPathName)在執(zhí)行過程中調(diào)用了讀文件操作和外部函數(shù) ReadDIBFile(nFile),獲得 m_hDIB 指針,當(dāng) m_hDIB 獲得過后,又實現(xiàn) DIB位圖的初始化,創(chuàng)建調(diào)色板,將 m_palDIB 指向剛載入內(nèi)存圖像的調(diào)色板。至此一副完整的圖像被我們調(diào)入內(nèi)存。由于我們每次更新文檔時都會影響 CMYARCView 中OnDraw(CDC* pDC)函數(shù)的調(diào)用,因此 OnDraw(CDC* pDC) 函數(shù)通過調(diào)用外部函數(shù)PaintDIB(pDCm_hDC, amp。rect, pDocm_hDIB, amp。rcDIB, pDoc
點擊復(fù)制文檔內(nèi)容
公司管理相關(guān)推薦
文庫吧 www.dybbs8.com
備案圖鄂ICP備17016276號-1