《軟件工程實踐》項目總結報告圖像簡單處理系統(tǒng)
《《軟件工程實踐》項目總結報告圖像簡單處理系統(tǒng)》由會員分享,可在線閱讀,更多相關《《軟件工程實踐》項目總結報告圖像簡單處理系統(tǒng)(48頁珍藏版)》請在裝配圖網(wǎng)上搜索。
1、軟件工程實踐項目總結報告(2010/2011 學年 第 1 學期)項目名稱:圖像簡單處理系統(tǒng)班 級:軟件 0801項目成員:2021 年 9 月軟件工程實踐項目總結報告- 1 -項目評分歷次項目階段性評審得分歷次項目階段性評審得分第 1 次第 2 次第 3 次第 4 次第 5 次第 6 次最終名次2222112項目成員對項目貢獻比例(項目成員對項目貢獻比例(%)黃超趙劍華孫芳芳謝彩燕胡華東施盛楠19%19%14%16%18%14%項目自我評價與心得體會項目自我評價與心得體會黃超: 在本次項目的開發(fā)過程中,我主要擔任了項目組長的職務。在對項目進行管理方面進了自己最大的能力與心力去做了,但還是存在
2、很多不足的。通過這次開發(fā),我第一次感受到了開發(fā)一個項目的不容易。首先是在項目成員的管理上,由于人員較多,項目不同于其他的基于 WEB 的項目,在任務分配后各小組進度不同,很難進行系統(tǒng)的集成。所以在項目后期集成方面遇到了很多問題。同時通過這次項目開發(fā)也令我懂得了更多關于團隊之間的協(xié)作的重要性。孫芳芳: 我們項目起初是作為創(chuàng)新項目在開發(fā)軟件,所以我們在暑假的時候就有在學習和開發(fā),起步相對其他小組比較早,但是雖然如此,由于在后階段并沒有像起初一樣的積極性,在后面開發(fā)的內(nèi)容并不多,導致最后趕得特別不易,這是我覺得下次開發(fā)需要改進的地方。我也從本次實踐課中學到了很多東西,比方說團隊合作與溝通,比方多新知
3、識的學習等等。趙劍華: 在一個學期的實踐中,不僅加強了編碼能力,同時也加強了溝通交流能力,另外還鍛煉了演講能力。面對軟件的不斷重構以及軟件功能不斷更新,完善,在鍛煉編碼能力的同時還加強了代碼的管理能力,使我的編碼風格有很大的改進。在編碼完成自己部分功能的同時不斷與團隊隊員之間的溝通,并且不斷地了解,使我明白要怎么樣更好的與團隊之間進行溝通,以及怎么去處理隊員與隊員之間的問題。這個學期里,為了軟件付出了挺多,當然得到了也很多。最主要的不是有多辛酸辛苦,而且能力得到了,這個是最主要的,是生活中最需要的。在此感謝軟件工程實踐為我?guī)淼囊磺?。施盛楠:軟件工程實踐中我們已做了一學期圖形圖像的項目,但是并
4、不成功,下學期要放棄做別的項目,我心里還是比較不痛快的。但是技術存在難題,這讓大家有點徒嘆奈何的感慨。第一次和團隊做項目,大家都是第一次,對于項目的具體流程雖然有老師的指導,但是配合上還是出現(xiàn)了很多問題。我感覺我們小組并沒出現(xiàn)什么化學反應,大家都不溫不火的在做,一開始興趣還比較大,但是后來就有點泄氣了??墒亲鲕浖椖坎⒉皇莻€憑興趣的事情,這是需要大家負擔自己責任的?;蛟S就像老師說的,我們肩上的壓力不軟件工程實踐項目總結報告- 2 -夠大吧,人有時候就是要逼自己才好。胡華東: 在此次項目開發(fā)過程中,不僅鍛煉了自己的代碼編程能力,文檔編寫能力,加強了小組成員之間的溝通能力,而且改善了編碼風格。在編
5、碼完成自己部分功能的同時不斷與團隊隊員之間的溝通,并且不斷地了解,使我明白要怎么樣更好的與團隊之間進行溝通,以及怎么去處理隊員與隊員之間的問題。這個學期里,為了軟件付出了挺多,當然得到了也很多。最主要的不是有多辛酸辛苦,而且能力得到了,這個是最主要的,是生活中最需要的。在此感謝軟件工程實踐為我?guī)淼囊磺?。教師評分教師評分優(yōu) 良 中 及格 不及格軟件工程實踐項目總結報告- 1 -目 錄1 項目概況項目概況 .21.1 團隊組成.21.2 開發(fā)環(huán)境.21.3 需求概述.21.3.1項目背景.31.3.2現(xiàn)狀分析.31.3.3項目意義.31.3.4適用范圍.42 需求需求說說明明 .42.12.1
6、分割功能:分割功能: .42.2 合成功能:.52.3 修復功能:.53 架構設計架構設計 .63.1 功能設計.63.2 概要設計.63.2.1 分割功能.63.3 合成功能:.93.4 修補實現(xiàn):.104 迭代迭代日日志志 .124.1 界面迭代:.124.2 分割迭代:.174.3 合成迭代:.184.4 修補迭代:.195 分工分工情情況況 .216FAQ.2261 環(huán)境配置:.2262 代碼編寫:.3063 項目管理:.416.3.1人員管理.416.3.2時間安排.416.3.3小組溝通問題.426.3.4小組進度緩慢.426.4 其他問題:.426.5 FAQ 的數(shù)量統(tǒng)計表 .4
7、2軟件工程實踐項目總結報告- 2 -1 項目概況項目概況1.1 團隊組成團隊組成本項目一共由 6 人組成,其中根據(jù)軟件功能又分為 4 個小組,分別為界面設計小組:趙劍華;圖像分割小組:黃超、孫芳芳;圖像合成小組:XXX、XX;圖像修復小組:XXX、XXX。組長由 XXX 擔任。1.2 開發(fā)環(huán)境開發(fā)環(huán)境本項目開發(fā)工具主要使用了 Microsoft Visual Studio.NET 2003,同時還使用了 OpenCV 1.0 的類庫,所使用的操作系統(tǒng)為 Windows XP。1.3 需求概述需求概述1.3.1 項目背景項目背景 隨著計算機科學的飛速發(fā)展,虛擬現(xiàn)實技術已滲透進入了軍事、工程、醫(yī)學
8、、教育等各個方面, 并且在這些領域中起著重要的作用。如海灣戰(zhàn)爭的美國士兵對周邊的環(huán)境不覺得陌生,是由于虛擬現(xiàn)實已把他們帶入那漫無邊際的風塵黃沙,讓他們“身臨其境”感受到大漠的荒涼。虛擬現(xiàn)實技術是一種可以創(chuàng)建和體驗虛擬世界的計算機仿真系統(tǒng),它利用計算機生成一種模擬環(huán)境,是一種多源信息融合的交互式的三維動態(tài)視景和實體行為的系統(tǒng)仿真,使用戶沉浸到該環(huán)境中去。虛擬現(xiàn)實技術是仿真技術的一個重要方向,是仿真技術與計算機圖形學、人機接口技術、多媒體技術、傳感技術、網(wǎng)絡技術等多種技術的集合,是一門富有挑戰(zhàn)性的交叉技術、前沿學科和研究領域。美國對此的投資從 80 年代的幾千美金到現(xiàn)在 14 個億足以說明其重要性
9、。軟件工程實踐項目總結報告- 3 -1.3.2 現(xiàn)狀分析現(xiàn)狀分析 近年來,計算機圖像技術的飛速發(fā)展和應用使個人電腦上的美術創(chuàng)作進入一個新的階段,各種圖像處理軟件也越來越完善,普及程度不斷地提高。其中的圖像處理軟件 Photoshop 是目前公認的較好用的通用美術設計軟件。它包括的功能有:可以對圖像進行修飾、對圖形進行編輯、對圖像的色彩進行處理等。在實際生活中人們通常將數(shù)碼相機拍攝下來的照片利用圖像處理軟件來進行編輯和修飾,現(xiàn)在越來越多的用戶不僅僅是滿足與單純的圖像處理,更希望利用圖像處理軟件來進行高質量的廣告設計、美術創(chuàng)意和三維動畫。利用圖像處理軟件制作圖形,要生產(chǎn)一個好的作品包括三個方面的內(nèi)
10、容:創(chuàng)意、構圖能力、計算機表達。即首先要有好的創(chuàng)意,然后對其進行粗略構圖,然后借助計算機手段,制作出所構想的最終效果圖。由于圖像處理軟件的功能強大,目前正被越來越多的圖像編排、廣告和形象設計以及婚紗影樓等領域廣泛使用,是非常受歡迎的軟件類別。1.3.3 項目意義項目意義本項目擬研究以對象分割、圖像修復和圖像合成為核心的基于圖像的編輯與繪制技術,并基于此開發(fā)一個虛擬現(xiàn)實場景圖像的特效制作軟件系統(tǒng)。首先,研究基于筆刷的對象分割算法,實現(xiàn)少量交互輔助下的便捷景物提??;此技術可用于圖像的切割,切割下的圖像可以黏貼至其他圖像,可用于合成新的場景和圖像。利用該項技術人們可以對自己喜歡的場景方便的進行截取,
11、進行圖像處理更加方便。然后,研究圖像的修復和拼接算法,實現(xiàn)景物移除后所遺留的空白區(qū)域的自動填補;使得新的圖像看不出剪裁過的痕跡且沒有裂縫。利用該技術可以使原有圖像在切割掉的基礎上依然保持圖像的完整性和連續(xù)性。最后,研究圖像的融合和合成算法,實現(xiàn)克隆景物與已有場景的無縫合成。通過這個系統(tǒng),我們可以方便地移除圖像中不需要的景物、添加進原來沒有的景物或者重新編排圖像中已有景物的位置,制作和生成新的虛擬現(xiàn)實場景圖像。此系統(tǒng)在現(xiàn)實生活中也有很廣泛的應用,例如,對于舊照片的修復,照片的合成以及制作電影特效等。同時還可以給人帶來很好的娛樂效果,人們可以利用軟件工程實踐項目總結報告- 4 -系統(tǒng)制作自己喜歡的
12、圖像,合成搞笑的圖像等。本項目的開發(fā)從娛樂和實用的角度都具有很重要的意義。1.3.4 適用范圍適用范圍本軟件適合于對各種格式的數(shù)字圖像進行處理。2 需求說明需求說明界面功能主要有打開,保存,視圖等基本功能,并且對功能分割,修補,合成功能的接口處理。程序分兩部分,一部分為分割和修補,另一部分為合成。由兩個界面構成,在分割和修補界面,界面中包含打開,圈定分割區(qū)域,分割,調(diào)色,改變位圖等工具欄功能,并且對分割后的圖像能夠進行修補操作。在合成界面,具有打開圖片,選定需要獲取的圖像信息,以及合成等功能。2.1 分割功能分割功能:總體需求可以歸結為基于圖像分割算法實現(xiàn)景物的精確提取功能。具體通過以下三個方
13、面實現(xiàn)。在功能方面,實現(xiàn)對所框部分的圖像進行前景的提取及顯示,對該圖像背景和灰度圖像進行保存,傳給其他功能模塊圖像的掩膜。在性能方面,時間特性要求:圖像對鼠標操作的響應時間較短;能進行較快的處理分割操作。靈活性要求:可以改變分割圖像的大小;可以改變所提取前景的顏色。在接口方面,得到界面所給的矩形框出的需要處理的圖像的信息,同時得到被框圖像的左上角和右下角坐標。傳回處理好圖像的 image 指針,圖像的信息和物體的輪廓線指針及掩膜。2.2 合成功能:合成功能:我們要實現(xiàn)的功能模塊是將兩幅或多幅圖像中的信息綜合到一幅圖像中,實現(xiàn)添加進的克隆景物與已有景物的無縫集成,滿足亮度、顏色和結構信息的連續(xù)性
14、和語義合理性。首先我們要對將要進行融合的圖片進行預處理,讓原圖像和待合成圖像不存在明顯的幾何畸變,在圖像質量不理想的情況下進行圖像融合,如果不經(jīng)過預處理,很容易造成一些誤匹配。軟件工程實踐項目總結報告- 5 -下一步是圖像配準,主是對參考圖像和待融合圖像中的匹配信息進行提取,在提取出的信息中尋找最佳的匹配,完成圖像間的對齊。圖像融合的成功與否主要是取決于圖像的配準。待融合的圖像之間,可能存在平移、旋轉、縮放等多種變換或者大面積的同色區(qū)域等很難匹配的情況,我們將努力實現(xiàn)能在多種情況下準確找到圖像間的對應信息,將圖像對齊。在完成圖像配準以后,就要對圖像進行縫合,并對縫合的邊界進行平滑處理,使圖像間
15、的合成縫隙不明顯,融合更自然。2.3 修復功能:修復功能:圖像修復是一項古老的藝術,最早可以追溯到歐洲文藝復興時期,為了恢復遭受破壞的美術作品,藝術家們利用人的感知力和想象力對作品的裂痕等受損區(qū)域進行修補,使其恢復和保持圖像的完整性。這一技術就稱之為Inpainting(修復,潤飾)或稱為 Retouching(分涂,修正) 。修復目的:對有劃痕或者破損的圖片進行數(shù)字掃描后加以修復;在圖像上面增加或者去除物體,比如電影后期制作中發(fā)現(xiàn)圖像中出現(xiàn)了多余的物體,麥克風,電線等的移除;修補信息缺失區(qū)域,如在數(shù)字圖像或視頻的獲取、處理、壓縮、傳輸和解壓縮過程中因信息丟失所留下的信息缺損區(qū)。需要修補圖像文
16、件來源不確定,可由用戶自行指定,一般為存儲于本地磁盤的特定圖像文件。圖像文件一般為部分破損、信息缺失、圖像信息贅余等情況的的文件。圖像修復過程,對受到損壞的圖像進行修復重建或者去除圖像中的多余物體。例如:照片修復、去除污物、去除文字、去除目標 等行為即為此功能實現(xiàn)效果需求。軟件工程實踐項目總結報告- 6 -3 架構設計架構設計3.1 功能設計功能設計本軟件主要功能分為數(shù)字圖像的對象分割、圖像修復和圖像合成四部分。首先,研究基于筆刷的對象分割算法,實現(xiàn)少量交互輔助下的便捷景物提?。淮思夹g可用于圖像的切割,切割下的圖像可以黏貼至其他圖像,可用于合成新的場景和圖像。利用該項技術人們可以對自己喜歡的場
17、景方便的進行截取,進行圖像處理更加方便。然后,研究圖像的修復和拼接算法,實現(xiàn)景物移除后所遺留的空白區(qū)域的自動填補;使得新的圖像看不出剪裁過的痕跡且沒有裂縫。利用該技術可以使原有圖像在切割掉的基礎上依然保持圖像的完整性和連續(xù)性。最后,研究圖像的融合和合成算法,實現(xiàn)克隆景物與已有場景的無縫合成。通過這個系統(tǒng),我們可以方便地移除圖像中不需要的景物、添加進原來沒有的景物或者重新編排圖像中已有景物的位置,制作和生成新的虛擬現(xiàn)實場景圖像。人們可以利用系統(tǒng)制作自己喜歡的圖像,合成搞笑的圖像等。3.2 概要設計概要設計3.2.1 分割功能分割功能主要思想主要思想:1通過高斯混合模型來描述前景與背景的分布。2通
18、過迭代方法求取高斯混合模型中的各個參數(shù)。3通過非完全標記方法,用戶只需利用矩形框標記處背景區(qū)域即可。4通過與高斯混合模型進行比較后,將得出的前景輪廓以鏈表的形式返回。軟件工程實踐項目總結報告- 7 -功能流程圖功能流程圖:獲取矩形坐標值采樣建立高斯模型判斷像素點是否匹配輸出前景輪廓提取完成圖 3代碼實現(xiàn):代碼實現(xiàn):1從用戶交互界面得到用戶確定的矩形的坐標(左上角和右下角) 。2使用 cvKMeans2()函數(shù)對高斯模型進行聚類。從確定的矩形的中心開始采樣,并對沿著 2 條對角線方向,取適量像素。3建立高斯混合模型1)定義 5 個高斯模型組件,對其進行初始化(全部為 1 或全部為 0) 。(將每
19、個像素的像素值代入到高斯方程中進行估算,以便將適合的像素點劃分到各個高斯模型組件中。 )2)利用迭代最小化方法求取混合高斯模型的參數(shù)(主要是均值和方差):混合高斯模型給出的概率密度函數(shù)實際上是幾個高斯概率密度函數(shù)的加權和: 軟件工程實踐項目總結報告- 8 -其中 . 定義事件 , 則 . 據(jù)此可以產(chǎn)生服從上述混合高斯概率密度分布的樣本. 混合分布的均值為 方差為 a為未知區(qū)域的每個像素點 n 設置高斯混合模型參數(shù) b由圖像中各個像素的數(shù)據(jù)求得高斯混合模型參數(shù) U U (,(, k,k, z)z) = = DD (n(n , , knkn , znzn ) )D D (n(n , , knkn
20、, z)z) = = - - loglog p p ( ( znzn | | nn , , knkn ,),) - - logwlogw (n(n , , knkn ) )其中p () 是高斯概率分布, w () 是該高斯模型的樣本數(shù)在總樣本中權值c利用最小化能量來得到初始分割d回到步驟 a 重復執(zhí)行,直到收斂為止;e進行邊界優(yōu)化。 4對矩形框中圖像的每一個像素進行處理,看是否匹配某個模型,若匹配則將軟件工程實踐項目總結報告- 9 -該像素標記為 1,若不匹配則標記為 0。 利用 for 循環(huán)對矩形內(nèi)的像素點進行遍歷,定義一個表示各像素匹配結果的變量,當像素符合高斯模型的特征值時,將該變量標記
21、為 1,否則標記為0。5利用循環(huán)遍歷矩形中各像素的匹配特征值,將變量值為 1 的像素點坐標建立成鏈表返回。3.3 合成功能:合成功能:主要思路主要思路:對于每幅數(shù)字圖像,我們都可以看成由確定的像素組成,假設圖像的每個像素看成由圖像分割的每個網(wǎng)格。假設 S 和是無限像素網(wǎng)格中的有限點集。注意到 S 可能包含了網(wǎng)格中的所有像素,也可能只是部分像素。對于 S 中的每個像素 p,Np 是 S 中相關四個像素的集合。表示一對像素,其中 q 屬于 Np; 的邊界;fp 表示 f 函數(shù)中 p 點的值。我們的目的是使得將泊松方程變幻后最終可得到: 其中 f*是 S 中除去領域中的一個已知函數(shù),f 是中定義的一
22、個未知函數(shù)。當包含 S 邊緣像素時,如果延伸到整個網(wǎng)格區(qū)域時,p 有截短領域,|Np|4 也就是 Np 屬于.方程可簡化成:其中 vpq 是 v((p+q)/2)在向量 pq 上的投影。求解出該方程組,得到新的像素值。功能流程圖功能流程圖:軟件工程實踐項目總結報告- 10 -打開需處理圖像建立泊松方程解方程更新被融合圖像像素,越界像處理返回新圖像融合完成圖 4代碼實現(xiàn)代碼實現(xiàn):代碼實現(xiàn)上主要涉及到三個函數(shù),divengence()函數(shù)對圖像的特征進行提取,求出圖像的散度。posionPaste()函數(shù),實現(xiàn)兩幅圖像的融合。其中 possionPaste中調(diào)用的子函數(shù) doCal()對圖像泊松方
23、程進行求解。3.4 修補實現(xiàn):修補實現(xiàn):主要思想:主要思想:修補模塊分為修補主函數(shù),輪廓函數(shù),計算優(yōu)先級函數(shù),修補函數(shù)。1 修補主函數(shù)獲取上層分割完成后傳入的帶修補圖像指針和 Mask 模板圖指針,Mask 模板圖作為傳入的帶修補圖像任意像素是否真實的對照表。將待修補圖像指針和 Mask 模板圖指針傳給輪廓函數(shù)。2 輪廓函數(shù)建立原圖像待修補區(qū)域輪廓的鏈表,依操作據(jù)輪廓鏈表節(jié)點對圖像相應像素進行。對輪廓鏈表的每個節(jié)點調(diào)用優(yōu)先級函數(shù)。優(yōu)先級函數(shù)獲取傳入像素點位置,可計算任意點像素的優(yōu)先級。3 對輪廓中優(yōu)先級最大的點調(diào)用修補函數(shù),通過搜尋與以該點為樣本塊最相似的區(qū)域來填充樣本塊,完成修補,更新 Ma
24、sk 模板圖和帶修補區(qū)域輪廓。重復 23 步,直至輪廓鏈表為空。功能流程圖功能流程圖:軟件工程實踐項目總結報告- 11 -邊界不為空邊界為空修補主函數(shù)Repair()確定待修補區(qū)域邊界線邊界是否為空計算邊界點優(yōu)先級修補優(yōu)先級最大的點更新Mask模板圖修補完成圖 5軟件工程實踐項目總結報告- 12 -4 迭代日志迭代日志4.1 界面迭代:界面迭代: 第一次迭代:界面需求功能的確定,界面初步具有文件,編輯,視圖,工具欄等基本功能圖 6第二次迭代:增加界面菜單功能,工具欄功能a)文件菜單: 圖 7b)編輯菜單:圖 8c)視圖菜單:軟件工程實踐項目總結報告- 13 -圖 9第三次迭代:程序能夠打開圖片
25、,并且能畫出一個矩形確定范圍(格式為JPG 和 BMP)圖 10圖 11第四次迭代:修改界面,去掉編輯功能,增加 process 菜單:包括功能打開新圖,以及獲取矩形框里圖像 圖 12軟件工程實踐項目總結報告- 14 -Process 菜單: 圖 13第五次迭代:添加 New_Image 功能代碼:形成副圖圖 14 圖中黑色部分為副圖打開的顯示位置第六次迭代:完成副圖上的打開圖片和重新圈定功能:打開圖片軟件工程實踐項目總結報告- 15 -圖 15圈定功能:圖 16第七次迭代:完成 process 菜單中,cut_image 功能軟件工程實踐項目總結報告- 16 -圖 17Cut_image 功
26、能完成后,圈定出來得部分如圖左上顯示第八次迭代:完成保存部分圖像圖 18第九次迭代:重做界面,分割和修補一程序界面,合成一個程序界面 完成分割修補界面:軟件工程實踐項目總結報告- 17 -圖 19文件菜單: 圖 20操作: 圖 21幫助: 圖 22完成合成界面: 圖 23文件菜單: 圖 24軟件工程實踐項目總結報告- 18 -4.2 分割迭代:分割迭代:第一次迭代:項目組成立第一次會議,集體討論分工,以及分組。初步學習 OpenCV 以及數(shù)字圖像處理方面的知識。了解當今的圖像處理軟件的前景和現(xiàn)狀,并對常用的功能以及原理有所了解。第二次迭代:閱讀圖像分割的相關方面資料,運用 OpenCV 完成程
27、序:在一幅圖片上繪制正弦曲線,改變線寬,填充顏色,實現(xiàn)小球沿曲線滾動。第三次迭代:對第二階段練習的程序進行完善,鞏固軟件的編寫基礎。第四次迭代:對分割功能模塊的相關算法進行閱讀與理解,確定各個模塊間的參數(shù)傳遞以及界面的接口設計,嘗試編寫功能代碼。第五次迭代:從多個算法中確定要使用的算法,并對這些算法進行深刻理解,對功能代碼進行些微的變動及完善。第六次迭代:主攻編寫功能實現(xiàn)代碼及調(diào)試,檢驗算法的完善程度。第七次迭代:與其他小組的進行詳細討論,適當修改代碼以便能很好得集成到一起。第八次迭代:與界面進行集成。4.3 合成迭代:合成迭代:第一次迭代:開發(fā)工具的學習:開始接觸這個工程的時候首先是對開發(fā)軟
28、件的新工具 OpenCv 的學習. 首先安裝 visual studio2003 和 openCV1.0 開發(fā)環(huán)境,熟悉 visual studio2003 各類工具操作和學習 openCV 基礎,編寫練習簡軟件工程實踐項目總結報告- 19 -單的 openCV 程序,如圖像的讀寫訪問轉換等,主要學習 OpenCv 中的函數(shù),函數(shù)的參數(shù)以及具體如何調(diào)用. 練習簡單的 openCV 程序,如圖像的讀寫訪問轉換等。參考的資料主要有。第二次迭代:九月中(1120 號)代碼練習:通過小例子練習對圖像的操作,主要的程序練習:打開一幅圖像,以圖像四條邊的中點為頂點畫一個菱形,在菱形框中填充顏色,并設置菱形
29、邊的寬度和顏色,在菱形邊上畫一個小球,小球沿著菱形邊做循環(huán)運動.通過對該功能的實現(xiàn)主要熟悉了對圖像像素進行操作,以及如何用鏈表存儲圖像信息.第三次迭代:明確項目需求,編寫需求文檔:參加這個項目以后,就軟件的整體需求開過多次會議,在代碼練習.在明確了項目需求后,通過小組討論劃分了三個小組,分別實現(xiàn)軟件的不同功能點.我們小組主要負責圖像融合算法的實現(xiàn).通過參考資料和文檔對該功能的進一步理解,這一階段主要內(nèi)容是對算法的理解,以及對功能實現(xiàn)的初步架構.初步編寫技術文檔。第四次迭代:整體架構設計,細化需求文檔:在對圖像融合算法有了總體理解的基礎上,要求對整個功能的實現(xiàn)提出整體的架構設計,并以技術文檔的形
30、式進行闡述.小組成員的工作進行進一步細分.根據(jù)圖像融合算法主要實現(xiàn)的兩大塊,列方程和求解方程.小組討論各自負責一個模塊. 這一階段要求對算法有明確的理解和初步實現(xiàn)代碼的整體思路,對項目技術文檔進行進一步細化,畫出整體流程框圖,編寫部分偽代碼。第五次迭代:代碼實現(xiàn):根據(jù)先前的思路以及對整個融合功能的理解,通過相關知識,將整體架構設計轉化為具體代碼,以函數(shù)分塊實現(xiàn)具體功能.第六次迭代:與主界面進行集成,將融合部分功能與主界面進行集成,確定集成接口和參數(shù)類型,修改代碼以實現(xiàn)各模塊的集成。4.4 修補迭代:修補迭代:第一次迭代:小組內(nèi)部軟件需求分析,軟件功能模塊架構,研究受損圖像的可靠修補算法,并完成
31、對修補算法的可行性分析,畫出算法流程圖。并學習計算機圖形學和計算機圖像學的相關技術和知識。軟件工程實踐項目總結報告- 20 -第二次迭代:根據(jù)算法流程圖,完成對算法的代碼架構,完成修補主函數(shù)Repair()代碼和各功能點函數(shù)代碼框架。第三次迭代:對輪廓函數(shù) Boundary()的代碼編寫,通過獲取上層函數(shù)傳入的待修補圖像指針和 Mask 圖,確定待修補區(qū)域的邊界輪廓線。第四次迭代:計算優(yōu)先級函數(shù) Priority()的置信項和數(shù)據(jù)項部分代碼編寫。第五次迭代:完成優(yōu)先級函數(shù) Priority()剩余部分編寫,并對修補函數(shù)repairing()搜尋相似樣本塊部分的代碼編寫。第六次迭代:完成修補函數(shù)
32、 Repairing()的剩余部分代碼編寫,并對更新函數(shù) Update()進行代碼編寫,刪除被修補像素并更新 Mask 圖。第七次迭代:修改修補主函數(shù) Repair(),完成對子函數(shù)的調(diào)用,并對各函數(shù)進行代碼走查,發(fā)現(xiàn)邏輯錯誤和語法錯誤。與其他小組進行集成。第八次迭代:對集成完畢的軟件進行測試,發(fā)現(xiàn)軟件缺陷并對已知的 Bug進行修復。軟件工程實踐項目總結報告- 21 -5 分工情況分工情況黃超趙劍華孫芳芳謝彩燕施盛楠胡華東項目管理100%0%0%0%0%0%需求分析16.5%(分割功能模塊的需求分析)17.5%(界面模塊的需求分析)16.5%(分割功能模塊的需求分析)16.5%(合成功能模塊的
33、需求分析)16%(合成功能模塊的需求分析)17%(修補功能模塊的需求分析)架構設計16.5%(分割模塊的架構設計以及接口設計)17.5%(界面模塊的架構設計以及接口設計)16.5%(分割模塊的架構設計以及接口設計)16.5%(合成模塊的架構設計以及接口設計)16%(合成模塊的架構設計以及接口設計)17%(修補模塊的架構設計以及接口設計)編碼與測試17.5%(分割模塊的編碼以及測試)17.5%(界面模塊的編碼以及測試)15.5%(分割模塊的編碼以及測試)16.5%(合成模塊的編碼以及測試)15%(合成模塊的編碼以及測試)17.5%(修補模塊的編碼以及測試)文檔編寫24%(項目概述,分工情況以及分
34、割模塊的功能模塊需求,功能模塊架構,開發(fā)過程的迭代情況,遇到的問題和解決方案,以及文檔總體的整理)25%(項目的頂層架構設計,用戶手冊以及界面模塊的功能模塊需求,開發(fā)過程的迭代情況,使用手冊,遇到的問題和解決方案)12.5%(分割模塊的功能模塊需求,開發(fā)過程的迭代情況,遇到的問題和解決方案)12.5%(合成模塊的功能模塊架構,開發(fā)過程的迭代情況,遇到的問題和解決方案)12.5%(合成模塊的功能模塊需求,開發(fā)過程的迭代情況,遇到的問題和解決方案)13.5%(修補模塊的功能模塊需求,功能模塊架構,開發(fā)過程的迭代情況,使用手冊,遇到的問題和解決方案)軟件工程實踐項目總結報告- 22 -6FAQ61
35、環(huán)境配置:環(huán)境配置:1 OpenCV 的安裝以及在 Microsoft Visual Studio.NET 2003 中的配置問題。解決方法:下載 OpenCV 1.0 安裝包,點擊安裝程序進行安裝。配置方法:定制全局選項打開 VC+.net 應用程序,在菜單項里選擇:Tools-Options 在列表中,選擇 Projects-VC+ Directories 首先,從“Show Directories for”的 list box 中選擇“Library files” 單擊“Insert New”圖標,定位你安裝 opencv 的文件夾 假設它安裝于“C:Program FilesOpenC
36、V” 在庫文件列表中,定位并添加: C:Program FilesOpenCVlib圖 25軟件工程實踐項目總結報告- 23 -然后在 list box 中選擇 include 文件,定位并添加以下路徑: C:Program FilesOpenCVcvincludeC:Program FilesOpenCVcxcoreincludeC:Program FilesOpenCVotherlibshighguiC:Program FilesOpenCVcvauxincludeC:Program FilesOpenCVotherlibscvcaminclude圖 26接下來,選擇 list box 中
37、的 source 文件,定位并添加一下路徑 C:Program FilesOpenCVcvsrcC:Program FilesOpenCVcxcoresrcC:Program FilesOpenCVcvauxsrcC:Program FilesOpenCVotherlibshighguiC:Program FilesOpenCVotherlibscvcamsrcwindows軟件工程實踐項目總結報告- 24 -圖 27單擊選項對話框的“OK” 現(xiàn)在你就正確配置好了全局設置。 創(chuàng)建 新的項目在 Developer Studio 中創(chuàng)建新的 application 從菜單中選擇File-New.-
38、Projects 選擇“Win32 Application或者Win32 console application,后者更加容易,示例都采取這種方式 軟件工程實踐項目總結報告- 25 -圖 28輸入項目名稱現(xiàn)則位置 單擊 OK,在向導中的直接單擊 finish。 圖 29軟件工程實踐項目總結報告- 26 -以上步驟之后 developer studio 將創(chuàng)建一個項目文件夾(缺省與項目同名)、.vcproj 文件、solution.sln 以及三個源文件:.cpp、stdafx.cpp 和 stdafx.h。stdafx 文件是預編譯頭文件,對于消減編譯時間很有用處。例如,假設我們創(chuàng)建了一個新的
39、叫“hello”的項目。打開 hello.cpp,包含 opencv 相關的#include 路徑: #include #include #include 然后鍵入一些 OpenCV 的代碼,按 F7 進行 Build,會有些 Link 錯誤。添加項目的 depencency 從菜單:“Projcet”-“Properties” 選擇Linktab - Input - Additional Dependencies。添加所有需要的庫 (cxcored.lib cvd.lib highguid.lib cvauxd.lib cvcamd.lib) 軟件工程實踐項目總結報告- 27 -圖 30這就
40、可以了,現(xiàn)在用 F5 編譯、運行。 圖 31軟件工程實踐項目總結報告- 28 -2安裝 opencv 完后的配置問題解決方法:看老師給的安裝文檔解決,原來是沒有把所需的 lib 文件包含進來 3安裝 Microsoft Visual Studio 2003 時出現(xiàn)問題,是計算機系統(tǒng)的問題解決方法:在安裝 2003 時放入老師給的 windows XP 系統(tǒng)安裝盤4編程前提的奠基解決方案:開發(fā)之前必須準備好編程的開發(fā)環(huán)境。要有開發(fā)軟件以及其他的必要條件。5安裝開發(fā)軟件解決方案:本次開發(fā)使用的是 vs 2003 的軟件版本,在安裝時需要使用windows XP 的系統(tǒng)環(huán)境支持,對于其他的環(huán)境支持可
41、能并不是很好。特別對于w7 之類的較為新穎的操作系統(tǒng)兼容性并不強。因此建議使用 XP 的操作系統(tǒng)進行安裝開發(fā)。在安裝 vs 2003 的版本軟件時,注意到可能會安裝失敗??赡苁钱斍安僮飨到y(tǒng)缺失了部分系統(tǒng)文件。解決方法可以選擇使用安裝光盤安裝好缺失的部分。在安裝過程中可以自行選擇安裝部分。建議只需安裝需要的部分即可,以免占用較多的硬盤空間造成不便。6OPENCV 的配置問題解決方案:對于較早版本的 vs c+配置較為方便,但是現(xiàn)在的編程工具不斷進步,c+6.0 的配置和 vs 2003 的配置又有所不同。在配置中應當注意一些問題 ,特別是路徑的正確性,已經(jīng)庫的全部導入,不可缺失。7.開發(fā)環(huán)境的配
42、置問題,我們小組一開始是在 VC2008 下,但是遇到了很多的問題,尤其反復出現(xiàn)了“MSVCR90D.dll not found”這個問題。解決方法:方法一:在解決方案配置中使用 release 模式,如果再有錯誤就說明你的程序錯了,在 realise 模式下,不能方便的調(diào)試。方法二:項目-屬性-配置屬性-連接器-常規(guī) ,把啟用增量連接改為否。8在一開始 OpenCV 安裝后“沒有找到 cxcore100.dll”軟件工程實踐項目總結報告- 29 -解決方法:這是因為在安裝時選擇”將OpenCVbin 加入系統(tǒng)變量”(AddOpenCVbin to the systerm PATH)。 但該選
43、項并不一定能成功添加到系統(tǒng)變量,如果編寫的程序在運行時出現(xiàn)“沒有找到 cxcore100.dll 說明這個應用程序未啟動,重新安裝應用程序可能會修復此問題。主要解決方案: 手動在我的電腦-屬性-高級-環(huán)境變量-系統(tǒng)變量-path 添加 c:program filesopencvbin; 添加完成后需要重啟計算機。9在后來改用 VC2005 后也遇到了一個問題,運行程序時出現(xiàn)“應用程序初始化錯解決方法:打開 OpenCV 安裝目錄下的_make 文件夾,用 VS2005 打開其中的opencv.sln,進行批生成(生成-批生成-僅選擇所有的 debug|win32 和release|win32-
44、生成)10以上生成過程中有時會出現(xiàn) “fatal error LNK1181: 無法打開輸入文件“cvauxd.lib”和“error C2039: foreground_regions不是CvFGDStatModel的成員”兩個錯誤解決方法:在解決方案資源管理器中打開 “cvaux-Include-External 的cvaux. h 文件,用查找功能找到上述 foreground_regions 成員,會發(fā)現(xiàn)此成員已被注釋掉了,只要將其上一行末尾的“/”改為“*/”使該成員可見,再次啟動項目,應該就可以編譯通過了。11一開始使用 opencv 編程時由于頭文件忘記添加會有編譯沒通過,后來就
45、記住了。12調(diào)試時遇到 fatal error C1010: 在查找預編譯頭時遇到意外的文件結尾。是否忘記了向源中添加“#include stdafx.h”?解決方法:選擇“配置屬性”- “c/c+ ”-預編譯頭-選擇“不使用預編譯頭”。開放環(huán)境的配置不正確。解決方法:咨詢正確安裝了軟件的同學,對比步驟,重新進行配置。軟件工程實踐項目總結報告- 30 -13代碼編譯時提示找不到相關文件的錯誤。解決方案:將 OpenCv 安裝路徑下的 dll 文件復制到系統(tǒng)中。14Vistual studio 2008 運行速度太慢。解決方法:改為使用 Vistual studio 2003。15提示 IplI
46、mage 類型未定義,即無法識別 OpenCv 庫函數(shù)。解決方案:在新建的工程中加入 lib 庫,具體做法是:選擇工程屬性Configuration PropertiesLinker-Input 將需要用到的類庫包含進來,如下圖:圖 3262 代碼編寫:代碼編寫:1在項目初始階段,由于閱讀的材料范圍比較廣泛,每個功能模塊都有涉及到并且各個功能模塊又有各種算法操作,在沒決定用哪些算法之前,這些閱讀資料都需閱讀,所以有很多具體的算法難以理解解決方法:詢問老師并且通過網(wǎng)絡對這些算法進行查詢,初步有些了解。2在確定具體用 grabcut 算法后閱讀針對性的文檔,對高斯混合模型以及 em算法(求解最大似
47、然函數(shù)極值)的理解過程中遇到問題。解決方法:閱讀圖書館有關書籍及詢問老師并且通過網(wǎng)絡查詢,確定建立的高斯模型數(shù)目,用 em 迭代算法求解混合高斯模型。3具體的對 opencv 應用通過寫程序練習,其中一個的要求是創(chuàng)建圖片畫菱形并對菱形著色,但是不知道如何改變顏色,這必須對圖像有所了解。解決方法:看 opencv 文檔中的例子及各種函數(shù)的應用情況,利用 CvScalar 和Cvget2D,Cvset2D 來設置圖片像素的顏色。4具體的對 opencv 應用通過寫程序練習,其中一個的要求是創(chuàng)建圖片或者以任意圖像作為背景圖片顯示正弦曲線,可以對曲線的線寬及顏色進行改變,還可以對其內(nèi)部進行著色,曲線的
48、高矮胖瘦都可以改變,有一個小球沿著曲線進軟件工程實踐項目總結報告- 31 -行滾動。其中在運用數(shù)據(jù)結構的時候遇到問題,宏定義線寬為 thickness 也出錯,還有在改變線寬時對像素的處理我在上下加寬度值,殊不知由于我們的是正弦曲線而并非很正規(guī)的線條,產(chǎn)生的效果并不理想,變成波峰波谷處粗中間細,小球滾動部分,不知道用什么函數(shù)。解決方法:數(shù)據(jù)結構部分我是查看以前學的數(shù)據(jù)結構書籍;由于 thickness 在opencv 中已有,所以將線寬宏定義名改為 thick;線的寬度部分通過在正弦曲線的法線方向加 2/thick 的方法解決;通過查找,小球滾動部分用cvCircle()及 cvShowIma
49、ge()方法實現(xiàn)。5具體編寫切割代碼部分,em 對各個參數(shù)的初始化問題及其他編程問題。解決方法:看書、看文檔、上網(wǎng)查資料,老師的指導及組員間的相互討論。6小組成員間需要哪些數(shù)據(jù)傳遞,以及與其他組的接口部分的問題。解決方法:老師的指導及組員間的相互討論7如果打開圖片解決方法:、新建一個單文檔的應用程序,項目名稱為 ShowBitmap、為 CShowBitmapView 類添加下述成員變量和成員函數(shù):/參數(shù)定義public: int state; /位圖顯示狀態(tài) CString BmpName; /保存圖像文件文件名 CString extname; /保存圖像文件擴展名 CBitmap m_b
50、itmap; /創(chuàng)建位圖對象 void ShowBitmap(CString BmpName); /用來顯示指定位圖的函數(shù) BOOL ShowJpgGif(CDC* pDC,CString strPath, int x, int y);、在 CShowBitmap 類的構造函數(shù)中,初始化成員變量 state軟件工程實踐項目總結報告- 32 -/ CShowBitmapView 構造/析構CShowBitmapView:CShowBitmapView() state=0;、為 ID_FILE_OPEN 消息添加響應函數(shù)(具體怎么加就不細說了),編寫該函數(shù)/ CShowBitmapView 消息處
51、理程序void CShowBitmapView:OnFileOpen() /CFileDialog dlg(TRUE,_T(BMP),_T(*.BMP),OFN_HIDEREADONLY|OFN_OVERWRITEPROMPT,_T(位圖文件(*.BMP;*.jpg)|*.BMP;*.jpg|); /這行代碼可以打開 BMP 格式的圖片 CFileDialog dlg(TRUE,NULL,NULL,OFN_HIDEREADONLY|OFN_OVERWRITEPROMPT,_T(位圖文件(*.BMP)|*.BMP|jpg 文件(*.jpg)|*.jpg|); /這行代碼可以打開 BMP 和 JP
52、G格式的圖片/gif 格式圖片的打開在這就不列出來了,留給各位自己嘗試吧,對于 gif 格式圖片的顯示圖片函數(shù)和 jpg 格式圖片是同一個函數(shù)。 if (IDOK=dlg.DoModal() state=0; BmpName.Format(_T(%s),dlg.GetPathName(); extname = dlg.GetFileExt(); /返回選定文件的擴展文件名軟件工程實踐項目總結報告- 33 - extname.MakeLower(); if (0=extname.Compare(_T(bmp) ShowBitmap(BmpName); else state=1; Invalida
53、te(); 、編寫 BMP 圖片顯示函數(shù)void CShowBitmapView:ShowBitmap(CString BmpName) if (state=0) HBITMAP hBitmap=(HBITMAP)LoadImage(NULL,BmpName,IMAGE_BITMAP,0,0,LR_CREATEDIBSECTION|LR_DEFAULTSIZE|LR_LOADFROMFILE); m_bitmap.Detach(); m_bitmap.Attach(hBitmap); state=1; Invalidate(); 、編寫 jpg 或 gif 格式圖片顯示程序軟件工程實踐項目總結
54、報告- 34 -BOOL CShowBitmapView:ShowJpgGif(CDC* pDC,CString strPath, int x, int y) IStream *pStm; CFileStatus fstatus; CFile file; LONG cb; /打開文件并檢測文件的有效性 if (file.Open(strPath,CFile:modeRead)& file.GetStatus(strPath,fstatus)& (cb = fstatus.m_size) != -1) HGLOBAL hGlobal = GlobalAlloc(GMEM_MOVEABLE, cb
55、); LPVOID pvData = NULL; if (hGlobal != NULL) pvData = GlobalLock(hGlobal); if (pvData != NULL) /file.ReadHuge(pvData, cb); /6.0 中可能是用這個函數(shù) file.Read(pvData, cb); /VC2005.NET 中用這個函數(shù) GlobalUnlock(hGlobal); CreateStreamOnHGlobal(hGlobal, TRUE, &pStm); 軟件工程實踐項目總結報告- 35 - else return false; /打開文件結束 /顯示 J
56、PEG 和 GIF 格式的圖片,GIF 只能顯示一幀,還不能顯示動畫, /要顯示動畫 GIF 請使用 ACTIVE 控件。 IPicture *pPic; /load image from file stream if(SUCCEEDED(OleLoadPicture(pStm,fstatus.m_size,TRUE,IID_IPicture,(LPVOID*)&pPic) OLE_XSIZE_HIMETRIC hmWidth; OLE_YSIZE_HIMETRIC hmHeight; pPic-get_Width(&hmWidth); pPic-get_Height(&hmHeight);
57、double fX,fY; /get image height and width fX = (double)pDC-軟件工程實踐項目總結報告- 36 -GetDeviceCaps(HORZRES)*(double)hmWidth/(double)pDC-GetDeviceCaps(HORZSIZE)*100.0); fY = (double)pDC-GetDeviceCaps(VERTRES)*(double)hmHeight/(double)pDC-GetDeviceCaps(VERTSIZE)*100.0); /use render function display image if(F
58、AILED(pPic-Render(*pDC,x,y,(DWORD)fX,(DWORD)fY,0,hmHeight,hmWidth,-hmHeight,NULL) pPic-Release(); return false; pPic-Release(); else return false; return true;、修改 OnDraw 函數(shù),實現(xiàn)圖片的顯示 / CShowBitmapView 繪制void CShowBitmapView:OnDraw(CDC* pDC)軟件工程實踐項目總結報告- 37 - CShowBitmapDoc* pDoc = GetDocument(); ASSER
59、T_VALID(pDoc); if (!pDoc) return; if (state=1) if (0 = extname.Compare(_T(bmp) CDC dcImage; if (!dcImage.CreateCompatibleDC(pDC) return; BITMAP bm; m_bitmap.GetBitmap(&bm); dcImage.SelectObject(&m_bitmap); pDC-BitBlt(0,0,bm.bmWidth,bm.bmHeight,&dcImage,0,0,SRCCOPY); else if (0 = extname.Compare(_T(j
60、pg) ShowJpgGif(pDC,BmpName,1,1); 軟件工程實踐項目總結報告- 38 -8滾動條實現(xiàn)解決方法:、建立工程時,將 View 類繼承自 CScrollView 、在 OnInitialUpdate 中添加初始化時 Scroll 的相關屬性值 CSize sizeTotal(0,0); SetScrollSizes(MM_TEXT,sizeTotal); 、打開文件 ( 圖像后 ) 根據(jù)圖像的大小,設置滾動屬性值 ChangeScrollRange(); / 自定義函數(shù) 、在 View 類中添加成員變量。 作用是存儲圖像顯示位置與原點的 offset int m_Img
61、VScrollPos ;/ VScroll distance int m_ImgHScrollPos ;/ HScroll distance 、滾動處理 添加自定義響應 WM_VSCROLL 、 WM_HSCROLL 消息的事件函數(shù): OnVScroll 、 OnHScroll void CSockIIView : OnVScroll ( UINT nSBCode , UINT nPos , CScrollBar * pScrollBar ) / TODO: Add your message handler code here and/or call default SCROLLINFO si
62、 ; GetScrollInfo ( SB_VERT ,& si , SIF_ALL ); m_ImgVScrollPos = si . nPos ; Invalidate ( TRUE ); CScrollView : OnVScroll ( nSBCode , nPos , pScrollBar ); 、圖像顯示 軟件工程實踐項目總結報告- 39 -更改 OnPaint 函數(shù)中圖像顯示的代碼: dc . BitBlt ( rc . left , rc . top , rc . Width (), rc . Height (), m_pMemDC , rc . left , rc . top
63、 , SRCCOPY ); 為: dc.BitBlt(rc.left,rc.top,rc.Width(),rc.Height(),m_pMemDC,(rc.left+m_ImgHScrollPos),(rc.top+m_ImgVScrollPos),SRCCOPY);9在項目開始初期,由于本項目主要利用 OpenCV 的類庫來對數(shù)字圖像進行處理,但 OpenCV 的相關知識是之前從未涉及到過的,所以不知道項目該從何入手。解決方法:由指導老師根據(jù)項目的功能來進行認為模塊的分類,以及要求我們對相關知識的學習。同時自身加強了對相關方面的程序練習。10在進行用運 OpenCV 進行程序練習時,不清楚如
64、何對圖像信息進行處理。解決方法:借閱數(shù)字圖像處理方面的書籍以及在網(wǎng)上查找資料。11在圖像中繪制正弦曲線,改變線寬使線寬在各處相等。解決方法:求曲線各個點的斜率,然后求出垂直方向上的斜率,根據(jù)垂直方向修改線寬信息。12在正弦曲線上實現(xiàn)小球滾動。解決方法:使用 cvCircle()方法在圖像上曲線上畫一個圓,然后使用cvShowImage()方法對圖像進行顯示,再重新載入原圖像取曲線上的下一個點繪制圓,如此循環(huán)。13在對圖像采樣信息進行聚類時,由于要使用到 OpenCV 中的 cvKMean2()方法,在對其參數(shù)進行初始化時,錯誤的把該賦為空值的矩陣也賦了值。解決方法:主要是理解了參數(shù)的意義后,對
65、參數(shù)進行了重新初始化。14創(chuàng)建一幅圖像,如何改變圖像的顏色值。解決方法:創(chuàng)建一個指向圖像顏色信息的指針,對指針的值進行操作改變指向的顏色信息,對顏色信息進行賦值。15也是關于矩陣方面的問題,由于對 OpenCV 中的矩陣結構理解的不夠透徹,無法正確的對矩陣中的元素進行正確賦值,以及在創(chuàng)建矩陣時初始化信息不正確。軟件工程實踐項目總結報告- 40 -解決方法:在指導老師的指導下,正確的認識了矩陣的結構,然后正確的進行了初始化、賦值。16在對圖像信息進行處理時總是存在越界問題。解決方法:對圖像的邊界進行判斷,在對圖像像素進行處理時對像素進行邊界判斷。17在測試聚類結果的正確性時,使用的方法是使用 c
66、vCircle()方法對聚類結果進行輸出。在提取像素坐標信息時產(chǎn)生了錯誤。解決方法:首先是對程序進行調(diào)試,檢查產(chǎn)生錯誤的原因,然后對錯誤原因進行思考,查閱相關方面的資料。18在項目進行至一半時發(fā)現(xiàn)對分割功能的實現(xiàn)思想 grabcut 理解產(chǎn)生了偏差。 解決方法:重新仔細理解 grabcut 的實現(xiàn)步驟,重新編寫技術文檔。19由于各個功能模塊由不同的小組負責,各個小組的進度不一致,界面實現(xiàn)后不能進行集成。解決方法:加快落后小組的進度,同時界面將與各功能的接口進行設計。20每次進行項目評審時,由于本項目并不是基于網(wǎng)頁開發(fā)的,無法將完成的工作以可視化的方法展示出來,導致評分比較低。解決方法:加快項目進度,同時采用圖片的方法進行成功展示。21本項目由 6 個人組成,其中又分為 4 各小組,大部分小組是男男組合或女女組合,但存在個別小組是男女組合,相互之間進行溝通比較少,導致項目進度緩慢。解決方法:將強小組成員之間的溝通,加快項目進度。22打開一幅圖像對圖像部分像素的 RGB 值改變,對修改后的圖片進行保存。重新載入該圖,以不同的指針對圖像信息進行修改,修改后的圖片保存后仍留有上一次對圖像進行處
- 溫馨提示:
1: 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
2: 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權益歸上傳用戶所有。
3.本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會有圖紙預覽,若沒有圖紙預覽就沒有圖紙。
4. 未經(jīng)權益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
5. 裝配圖網(wǎng)僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負責。
6. 下載文件中如有侵權或不適當內(nèi)容,請與我們聯(lián)系,我們立即糾正。
7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 蘇教版五上《小數(shù)乘整數(shù)》ppt課件
- 蘇教版一年級數(shù)學上冊《數(shù)一數(shù)》ppt課件
- 江南1優(yōu)秀課件
- 提高印字質量課件
- 服務分銷策略課件
- 數(shù)學必修蘇教版互斥事件課件3(共32張PPT)
- 第三章要素費用的核算PPT優(yōu)秀資料
- 元素的質量分數(shù)計算答案
- 圖形的欣賞與設計
- 八年級下期Uuit10SectionA課件
- 部編七年級語文下冊4孫權勸學課件
- 部編一年級語文下冊端午粽課件
- 超市防損的技能課件
- 表彰班會教學課件教學課件
- 第17講中考數(shù)學專題復習 函數(shù)的綜合應用中考數(shù)學專題復習課件課件各版通用