當前位置:首頁 » 操作系統 » 演算法測試報告

演算法測試報告

發布時間: 2022-12-08 20:49:34

演算法課程設計報告

題目中要求的功能進行敘述分析,並且設計解決此問題的數據存儲結構,(有些題目已經指定了數據存儲的,按照指定的設計),設計或敘述解決此問題的演算法,描述演算法建議使用流程圖,進行演算法分析指明關鍵語句的時間復雜度。
給出實現功能的一組或多組測試數據,程序調試後,將按照此測試數據進行測試的結果列出來 。
對有些題目提出演算法改進方案,比較不同演算法的優缺點。
如果程序不能正常運行,寫出實現此演算法中遇到的問題,和改進方法;
2 對每個題目要有相應的源程序(可以是一組源程序,即詳細設計部分):
源程序要按照寫程序的規則來編寫。要結構清晰,重點函數的重點變數,重點功能部分要加上清晰的程序注釋。
程序能夠運行,要有基本的容錯功能。盡量避免出現操作錯誤時出現死循環;
3 最後提供的主程序可以象一個應用系統一樣有主窗口,通過主菜單和分級菜單調用課程設計中要求完成的各個功能模塊,調用後可以返回到主菜單,繼續選擇其他功能進行其他功能的選擇。最好有窗口展示部分。
4 課程設計報告:(保存在word 文檔中,文件名要求 按照"姓名-學號-課程設計報告"起名,如文件名為"張三-001-課程設計報告".doc )按照課程設計的具體要求建立的功能模塊,每個模塊要求按照如下幾個內容認真完成;
其中包括:
a)需求分析:
在該部分中敘述,每個模塊的功能要求
b)概要設計
在此說明每個部分的演算法設計說明(可以是描述演算法的流程圖),每個程序中使用的存儲結構設計說明(如果指定存儲結構請寫出該存儲結構的定義。
c)詳細設計
各個演算法實現的源程序,對每個題目要有相應的源程序(可以是一組源程序,每個功能模塊採用不同的函數實現)
源程序要按照寫程序的規則來編寫。要結構清晰,重點函數的重點變數,重點功能部分要加上清晰的程序注釋。
d)調試分析
測試數據,測試輸出的結果,時間復雜度分析,和每個模塊設計和調試時存在問題的思考(問題是哪些?問題如何解決?),演算法的改進設想。
5. 課設總結: (保存在word 文檔中)總結可以包括 : 課程設計 過程的收獲、遇到問題、遇到問題解決問題過程的思考、程序調試能力的思考、對數據結構這門課程的思考、在課程設計過程中對C課程的認識等內容;
6.實驗報告的首頁請參考如下格式:

課程設計實驗
起止日期:20 -20 學年 學期
系別 班級 學號 姓名
實驗題目 □設計性 □綜合性
自我評價
教師評語 能夠實現實驗要求的功能 □全部 □部分演算法有新意 □有 □一般程序運行通過 □全部 □部分 演算法注釋說明 □完善 □僅有功能說明介面參數說明 □有 □無按期上交列印文檔資料及源程序 □所有 □部分綜合設計說明報告結構 □合理 □不合理用戶使用說明 □完整 □不全現場演示操作有準備 □有 □無問題解答流暢 □流暢 □不流暢獨立完成實驗 □能 □不能體現團隊合作精神。 □能夠 □不能
成績

這是張表格,過來時沒調整好,不過應該看得明白。我們是這樣寫的,你可以參考一下。

❷ 高分懸賞C語言作業!!!!!急!!!!!

// 搬磚
#include<stdio.h>
int main()
{
int m,g,c;//定義變數,男生數量為m,女生為g,小孩為c
for (m=1;m<36;m++)
for (g=1;g<36;g++)
for (c=1;c<36;c++)
if ((m+g+c)==36&&(8*m+6*g+c)==72)// 滿足人數為36,搬磚數量為36則輸出
printf("男%d 女%d 小孩%d\n",m,g,c);
return 0;
}

❸ 軟體測試報告例文

以前寫的東西 省略著寫
XX軟體測試報告 共 x 頁 擬制 年 月 日審核 年 月 日會簽 年 月 日批准 年 月 日
1 范圍本文檔適用於XX軟體的單元/集成測試。1.2 系統概述1.3 文檔概述本文檔用於對XX軟體的測試工作階段成果的描述。包括對軟體測試的整體描述,軟體測試的分類和級別,軟體測試的過程描述,軟體測試的結果等內容。2 引用文檔《XX軟體需求規格說明》《XX軟體設計說明》《XX系統介面協議》3 測試概述3.1被測軟體的基本概況使用的編程語言:XXX 匯編語言程序行數:1590子程序個數:11單行注釋行數:669注釋率:約為42%3.1.1. 測試小結本次測試對XX軟體進行了靜態分析和動態測試。測試工作分為兩個階段。第一階段進行了軟體靜態分析,軟體測試人員和開發人員分別對軟體V1.00版本的代碼進行走讀。在此基礎上軟體開發人員對代碼走查中發現的問題進行了修改,做了97處代碼變更並提交了V1.01版本進行動態測試。在測試過程中針對發現的軟體缺陷進行了初步分析,並提交程序設計人員對原軟體中可能存在的問題進行考查。在軟體測試中首先根據軟體測試的規范進行考核,將書寫規范,注釋等基礎問題首先解決,其次考核軟體測試中的問題是否存在設計上的邏輯缺陷,如果存在設計缺陷則應分析該缺陷的嚴重程度以及可能引發的故障。軟體開發人員在以上基礎上對軟體的不足做出相應的修改,同時通過軟體回歸測試驗證軟體修改後能夠得到的改善結果。 軟體代碼1.00與1.01版變更明細表: 編號 1.00版行號 1.01版行號 更改說明 1 19 22 注釋變更 2 26 29 注釋變更 3 29 32 注釋變更 4 95 98 注釋變更 5 108行後 113~116 增加新變數 6 171、172 180、181 命令字大小寫變更 7 以下略 從上表可以看出,注釋變更一共有15處,主要排除了對原程序的理解錯誤問題;根據程序的書寫規范要求,一行多條語句改為一行一條語句的更改一共有42處;命令字大小寫變更一共有7處;在代碼走查中對冗餘和無用的代碼作了更改,將這些代碼注釋掉,此類更改一共有14處。上述4類更改一共有78處,這些更改對程序本身的功能沒有任何影響,但從軟體規范的角度來看提高了程序的可讀性和規范性。其餘19處變更為代碼變更,主要是在軟體測試中發現原程序的可靠性不足,在不改變原程序功能的基礎上相應的增加了新變數、新語句、新程序以提高整個程序的可靠性。在動態測試階段進行了單元測試和集成測試。此階段發現的軟體問題經軟體測試人員修改,提交了V1.02版本,軟體測試人員對此版本的軟體代碼進行了回歸測試,確認對前階段發現的軟體問題進行了修改,消除了原有的軟體問題並且確認沒有引入新的軟體問題。認定V1.02版為可以發行的軟體版本。3.1.1.1 靜態分析小結靜態測試採用人工代碼走查的方式進行。參加代碼走查的軟體開發人員有:(略);參加代碼走查的軟體測試人員有:(略)。代碼走查以代碼審查會議的形式進行。靜態分析過程中共進行了四次會議審查。靜態測試階段的主要工作內容是:l 根據對軟體匯編源代碼的分析繪制詳細的程序流程圖和調用關系圖(見附件1);l 對照軟體匯編源代碼和流程圖進行程序邏輯分析、演算法分析、結構分析和介面分析;l 對軟體匯編源代碼進行編程規范化分析。通過靜態測試查找出軟體的缺陷18個,其中輕微的缺陷4個,占所有缺陷的22.2%中等的缺陷11個,占所有缺陷的61.1%嚴重的缺陷:3個,占所有缺陷的16.7%上述軟體缺陷見附件《軟體問題報告單》3.1.1.2 動態測試小結動態測試使用的測試工具為XXX軟體集成開發環境。總共的測試用例數:143個。全部由測試人員人工設計。其中單元測試用例138個,集成測試用例5個。發現的軟體缺陷有2個,都是在單元測試過程中發現的。集成測試階段未發現新的軟體缺陷。在發現的軟體缺陷中:中等的缺陷1個,占所有缺陷的50%嚴重的缺陷1個,占所有缺陷的50%上述軟體缺陷見附件《軟體問題報告單》動態測試中代碼覆蓋率:代碼行覆蓋率 100%分支覆蓋率 100%程序單元調用覆蓋率 100%3.1.1.3 回歸測試小結對軟體測試過程中發現的缺陷經軟體開發人員確認後進行了代碼更改,並對更改後的代碼進行了回歸測試。本報告中的數據是回歸測試後的測試數據。3.1.1.4 測試分析下面將對此次軟體測試中的所有缺陷以及改進設計進行分析。1. 靜態測試中的缺陷分析: 1) 4個輕微缺陷屬於代碼冗餘,由於在程序設計中加入了部分調試程序,在程序設計完成後未將這些調試代碼注釋或刪除掉而造成代碼冗餘,但對程序本身的功能並無影響。修改後程序的效率得到提高。2) 11個中等缺陷屬於注釋變更,在原程序代碼的注釋中存在注釋不準確的問題,會影響程序員對程序的理解,修改後的程序提高了程序的可讀性。3) 重點分析3個嚴重缺陷:第一個嚴重缺陷屬於XX號的無效判別和相應的處理問題,程序對XX號進行無效判別時,判別界限並不完全,在本跟蹤程序中XX號的有效數為01-10(用4位表示),而判別無效時只判了為00的情況,沒有判別大於10的情況。而且在為00時也沒有作相應的處理,修改後的程序對設計進行了改進,詳見改進設計分析3。第二個嚴重缺陷屬於程序設計中讀取地址錯誤問題,經分析在調試中讀取的數據是正確的,但是讀取的地址與設計初衷不相符,修改後問題得到了解決,詳見改進設計分析1。第三個嚴重錯誤是近區/遠區子程序判斷與進入條件反了,經分析對程序的影響不大,但與設計初衷不一致,修改後問題得到了解決,詳見改進設計5。2. 動態測試中的缺陷分析:1) 中等缺陷1個,在程序的注釋中出現錯誤,將近區注釋為遠區,修改後問題得到了解決,提高了程序的可讀性。2) 嚴重缺陷1個,在XX號無效的判別中,本應判斷大於10,但誤設計為0,修改後經回歸測試問題得到了解決。 3. 改進的設計分析:(因和產品相關,略) 3.1.2 測試記錄a 測試時間:2005年8月5日至2005年9月17日。b 地點:(略)。c 硬體配置:P4CPU/2.0G,內存256M,硬碟1Gd 軟體配置:Wondows98,e 被測軟體版本號:V1.0,V1.01,V1.02f 所有測試相關活動的日期和時間、測試操作人員等記錄見軟體測試記錄文檔。4 測試結果在兩個階段測試過程中共發現軟體缺陷20個,經軟體開發人員確認的缺陷為20個,經過改正的代碼消除了所有以確認的軟體缺陷並通過了回歸測試。因測試條件所限,未能進行軟體的確認測試和系統測試。5 評估和建議5.1 軟體評估 5.1.1 軟體編碼規范化評估經過回歸測試,未殘留的軟體編碼規范性缺陷。軟體代碼文本注釋率約為42%,代碼注釋充分,有利與代碼的理解和維護。5.1.2 軟體動態測試評估被測軟體單元的總數:11個使用的測試用例個數:143個達到軟體測試出口准則的軟體單元數為11個,通過率100%通過單元和集成測試得知:軟體代碼邏輯清晰、結構合理、程序單元間介面關系一致,運行穩定。5.2 改進建議a. 建議在軟體開發項目中全面實施軟體工程化,加強軟體開發的管理工作。b. 建議進一步加強軟體需求規格說明、軟體設計文檔編制以及編寫代碼的規范化。特別是應該將系統中的硬體研製和軟體研製分別管理,軟體文檔編制的種類和規格按照相關標准執行。c. 盡早開展軟體測試工作。在軟體研製計劃安排上給軟體測試留有必要的時間,在資源配置上給軟體測試必要的支撐。d. 建議結合系統聯試,開展軟體的確認和系統測試。附件:軟體問題報告單(略)軟體更改通知單(略)軟體測試記錄(略)

❹ 圖像邊緣檢測演算法的研究與實現 的開題報告

摘 要 針對基於PC實現的圖像邊緣檢測普遍存在的執行速度慢、不能滿足實時應用需求等缺點,本文藉助於TI公司的TMS320DM642圖像處理晶元作為數字圖像處理硬體平台,DSP/BIOS為實時操作系統,利用CCS開發環境來構建應用程序;並通過攝像頭提取視頻序列,實現對邊緣檢測Sobel運算元改進[1]。
關鍵詞 DM642;Sobel運算元;程序優化;圖像邊緣檢測

1 引言
邊緣是圖像中重要的特徵之一,是計算機視覺、模式識別等研究領域的重要基礎。圖像的大部分主要信息都存在於圖像的邊緣中,主要表現為圖像局部特徵的不連續性,是圖像中灰度變化比較強烈的地方,也即通常所說的信號發生奇異變化的地方。經典的邊緣檢測演算法是利用邊緣處的一階導數取極值、二階導數在階梯狀邊緣處呈零交叉或在屋頂狀邊緣處取極值的微分演算法。圖像邊緣檢測一直是圖像處理中的熱點和難點。
近年來,隨著數學和人工智慧技術的發展,各種類型的邊緣檢測演算法不斷涌現,如神經網路、遺傳演算法、數學形態學等理論運用到圖像的邊緣檢測中。但由於邊緣檢測存在著檢測精度、邊緣定位精度和抗雜訊等方面的矛盾及對於不同的演算法邊緣檢測結果的精度卻沒有統一的衡量標准,所以至今都還不能取得令人滿意的效果。另外隨著網路和多媒體技術的發展,圖像庫逐漸變得非常龐大;而又由於實時圖像的目標和背景間的變化都不盡相同,如何實現實時圖像邊緣的精確定位和提取成為人們必須面對的問題。隨著DSP晶元處理技術的發展,尤其是在圖像處理方面的提高如TMS320C6000系列,為實現高效的、實時的邊緣檢測提供了可能性[5]。在經典的邊緣檢測演算法中,Sobel邊緣檢測演算法因其計算量小、實現簡單、處理速度快,並且所得的邊緣光滑、連續等優點而得到廣泛的應用。本文針對Sobel演算法的性能,並藉助於TMS320DM642處理晶元[3],對該邊緣檢測演算法進行了改進和對程序的優化,滿足實時性需求。
2 Sobel邊緣檢測演算法的改進
經典的Sobel圖像邊緣檢測演算法,是在圖像空間利用兩個方向模板與圖像進行鄰域卷積來完成的,這兩個方向模板一個是檢測垂直邊緣,一個是檢測水平邊緣。演算法的基本原理:由於圖像邊緣附近的亮度變化較大,所以可以把那些在鄰域內,灰度變化超過某個適當閾值TH的像素點當作邊緣點。Sobel演算法的優點是計算簡單,速度快。但由於只採用了兩個方向模板,只能檢測水平方向和垂直方向的邊緣,因此,這種演算法對於紋理較復雜的圖像,其邊緣檢測效果欠佳;同時,經典Sobel演算法認為,凡灰度新值大於或等於閾值的像素點都是邊緣點。這種判定依據是欠合理的,會造成邊緣點的誤判,因為多雜訊點的灰度新值也很大。
2.1 圖像加權中值濾波
由於圖像中的邊緣和雜訊在頻域中均表現為高頻成分,所以在邊緣檢測之前有必要先對圖像進行一次濾波處理,減少雜訊對邊緣檢測的影響。中值濾波是一種非線性信號的處理方法[2],在圖像處理中,常用來保護邊緣信息;保證濾波的效果。加權中值濾波,首先對每個窗口進行排序,取適當的比例,進行曲線擬合,擬合後的曲線斜率表徵了此窗口的圖像特徵,再根據圖像各部分特性適當的選擇權重進行加權。
2.2 增加方向模板
除了水平和垂直兩方向外,圖像的邊緣還有其它的方向,如135o和45o等,為了增加運算元在某一像素點檢測邊緣的精度,可將方向模板由2個增加為8個即再在經典的方向模板的基礎上增加6個方向模板,如圖1所示。
2.3 邊緣的定位及雜訊的去除
通常物體的邊緣是連續而光滑的,且邊緣具有方向和幅度兩個特徵,而雜訊是隨機的。沿任一邊緣點走向總能找到另一個邊緣點,且這兩個邊緣點之間的灰度差和方向差相近。而雜訊卻不同,在一般情況下,沿任一雜訊點很難找到與其灰度值和方差相似的雜訊點[4]。基於這一思想,可以將雜訊點和邊緣點區分開來。對於一幅數字圖像f(x,y),利用上述的8個方向模板Sobel運算元對圖像中的每個像素計算,取得其中的最大值作為該點的新值,而該最大值對應的模板所表示的方向為該像素點的方向。若|f(x,y)-f(x+i,y+j)|>TH2,對於任意i=0,1,-1;j=0,1,-1均成立,則可判斷點(x,y)為雜訊點。圖2給出了圖像邊緣檢測系統改進演算法的軟體流程圖。

圖1 邊緣檢測8個方向模板

圖2 系統結構圖
3 基於TMS320DM642的圖像處理的設計及演算法優化
3.1 TMS320DM642功能模塊及圖像處理系統的硬體結構
DSP以高速數字信號處理為目標進行晶元設計,採用改進的哈佛結構(程序匯流排和數據匯流排分開)、內部具有硬體乘法器、應用流水線技術、具有良好的並行性和專門用於數字信號處理的指令及超長指令字結構(VLIW)等特點;能完成運算量大的實時數字圖像處理工作。
TMS320DM642是TI公式最近推出的功能比較強大的TMS320C6x系列之一,是目前定點DSP領域里性能較高的一款[6]。其主頻是600MHz,8個並行運算單元、專用硬體邏輯、片內存儲器和片內外設電路等硬體,處理能力可達4800MIPS。DM642基於C64x內核,並在其基礎上增加了很多外圍設備和介面,因而在實際工程中的應用更為廣泛和簡便。本系統使用50 MHz晶體震盪器作為DSP的外部時鍾輸入,經過內部鎖相環12倍頻後產生600 MHz的工作頻率。DM642採用了2級緩存結構(L1和L2),大幅度提高了程序的運行性能。片內64位的EMIF(External Memory Interface)介面可以與SDRAM、Flash等存儲器件無縫連接,極大地方便了大量數據的搬移。更重要的是,作為一款專用視頻處理晶元,DM642包括了3個專用的視頻埠(VP0~VP2),用於接收和處理視頻,提高了整個系統的性能。此外,DM642自帶的EMAC口以及從EMIF 口擴展出來的ATA口,還為處理完成後產生的海量數據提供了存儲通道。
本系統是採用瑞泰公司開發的基於TI TMS320DM642 DSP晶元的評估開發板——ICETEK DM642 PCI。在ICETEK DM642 PCI評估板中將硬體平台分為五個部分,分別是視頻採集、數據存儲、圖像處理、結果顯示和電源管理。視頻採集部分採用模擬PAL制攝像頭,配合高精度視頻A/D轉換器得到數字圖像。基於DSP的視頻採集要求對視頻信號具備採集,實時顯示、對圖像的處理和分析能力。視頻A/D采樣電路—SAA7115與視頻埠0或1相連,實現視頻的實時採集功能。視頻D/A電路—SAA7105與視頻口2相連,視頻輸出信號支持RGB、HD合成視頻、PAL/NTSC復合視頻和S端子視頻信號。通過I2C匯流排對SAA7105的內部寄存器編程實現不同輸出。
整個系統過程由三個部分組成:圖像採集—邊緣處理—輸出顯示,如圖2所示。攝像頭採集的視頻信號經視頻編碼器SAA7115數字化,DM642通過I2C匯流排對SAA7115進行參數配置。在SAA7115內部進行一系列的處理和變換後形成的數字視頻數據流,輸入到核心處理單元DM642。經過DSP處理後的數字視頻再經過SAA7105視頻編碼器進行D/A轉換後在顯示器上顯示最終處理結果。
3.2 圖像處理的軟體設計和演算法優化的實現
由於在改進Sobel邊緣檢測運算元性能的同時,也相對增加了計算量,尤其是方向模板的增加,每個像素點均由原來的2次卷積運算增加為8次卷積運算,其實時性大大減弱。為了改進上述的不足,在深入研究處理系統和演算法後,針對TMS320DM642的硬體結構特點,研究適合在TMS320DM642中高效運行的Sobel改進演算法,滿足實時處理的要求。整個程序的編寫和調試按照C6000軟體開發流程進行,流程分為:產生C代碼、優化C代碼和編寫線性匯編程序3個階段。使用的工具是TI的集成開發環境CCS。在CCS下,可對軟體進行編輯、編譯、調試、代碼性能測試等工作。在使用C6000編譯器開發和優化C代碼時[7-8],對C代碼中低效率和需要反復調用的函數需用線性匯編重新編寫,再用匯編優化器優化。整個系統的控制以及數字圖像處理是用C程序實現,大部分軟體設計採用C程序實現,這無疑提高了程序的可讀性和可移植性,而匯編程序主要是實現DM642的各部分初始化。其邊緣檢測優化演算法在DM642中的實現步驟具體如下:
S1:根據DM642的硬體結構要求和控制寄存器設置,初始化系統並編寫實現邊緣檢測演算法的C程序。
S2:藉助CCS開發環境的優化工具如Profiler等產生.OUT文件。
S3:根據產生的附件文件如.MAP文件,分析優化結果及源程序結構,進一步改進源程序和優化方法。
S4:使用CCS中調試、鏈接、運行等工具,再生成.OUT可執行文件。
S5:運行程序,如果滿足要求則停止;否則重復步驟S2~S4直至滿足使用要求。
4 實驗結果
本文以Lena圖像為例根據上述的硬體環境和演算法實現的原理和方法,圖4~圖6分別給出了在該系統下採集的視頻Lena圖像及使用邊緣檢測運算元和改進後處理的結果。由實驗結果可以看出,在該系統下能實時完成視頻圖像的處理,並且給出的邊緣檢測運算元能較好的消除雜訊的影響,邊緣輪廓清晰。該演算法不僅能抑制圖像中大部分雜訊和虛假邊緣,還保證了較高的邊緣點位精度。

圖4 Lena原始圖像 圖5 傳統Sobel運算元 圖6 改進Sobel運算元

5 總結
本文實現了在TMS320DM642評估板上用改進的Sobel運算元對實時圖像進行邊緣檢測,無延遲地得到邊緣圖像。邊緣檢測效果較好,既提高了圖像檢測的精度又滿足了實時性的要求。從檢測結果看,利用該改進後的運算元在邊緣精確定位、邊緣提取都達到了很好的效果,且抗雜訊能力強,並為目標跟蹤、無接觸式檢測、自動駕駛、視頻監控等領域的應用提供了堅實的基礎。
參考文獻
[1] 王磊等. 基於Sobel理論的邊緣提取改善方法[J].中國圖像圖形學報,2005.10
[2] 陳宏席. 基於保持平滑濾波的Sobel運算元邊緣檢測.蘭州交通大學學報,2006,25(1):86—90
[3] 熊偉. 基於TMS320DM642的多路視頻採集處理板卡硬體設計與實現[ M]. 國外電子元器件,2006
[4] 朱立.一種具有抗雜訊干擾的圖像邊緣提取演算法的研究[J].電子技術應用.2004,25(1)
[5] 劉松濤,周曉東.基於TMS320C6201的實時圖像處理系統[J].計算機工程,2005(7):17—23
[6] TI TMS320DM642 video/imaging fixed-point digital signal processor data manual,2003
[7] TMS320C6x Optimizing C Compiler User』s Guide』 TEXAS INSTRUMENTS」,2002
[8] TMS320C32x Optimizing C/C++ Compiler User's Guide,Texas Instruments Incorporated,2001

熱點內容
c語言5常量 發布:2024-04-27 02:38:49 瀏覽:990
源碼怎麼搭建 發布:2024-04-27 02:33:44 瀏覽:96
java獲取參數 發布:2024-04-27 02:22:21 瀏覽:501
unixlinuxwindows 發布:2024-04-27 02:10:55 瀏覽:445
nginx禁止ip訪問網站 發布:2024-04-27 02:05:43 瀏覽:845
webrtc伺服器搭建哪家價格低 發布:2024-04-27 01:30:08 瀏覽:140
oracle資料庫無法啟動 發布:2024-04-27 01:29:20 瀏覽:613
倪萍超級訪問 發布:2024-04-27 01:23:29 瀏覽:705
java集合循環 發布:2024-04-27 01:17:18 瀏覽:593
解壓喪屍片 發布:2024-04-27 01:02:28 瀏覽:370