版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進(jìn)行舉報(bào)或認(rèn)領(lǐng)
文檔簡介
1、××大學(xué)2013-2014學(xué)年第二學(xué)期課程考核圖像處理綜合設(shè)計(jì)報(bào)告基于數(shù)字圖像處理技術(shù)的答題卡識別方法學(xué) 號 姓 名 班 級 日 期 本人鄭重聲明:本人認(rèn)真、獨(dú)立完成了查找資料、編寫程序、撰寫報(bào)告等考核任務(wù)。簽字:日期:摘 要背景:隨著科技的發(fā)展,電子與計(jì)算機(jī)技術(shù)的進(jìn)步,答題卡的出現(xiàn)大大減輕教學(xué)工作者們批改試卷的工作量。答題卡是光標(biāo)閱讀機(jī)輸入信息的載體,是配套光標(biāo)閱讀機(jī)的各種信息錄入表格的總稱。 答題卡將用戶需要的信息轉(zhuǎn)化為可選擇的選項(xiàng),供用戶涂寫。OMR是用光學(xué)掃描的方法來識別按一定格式印刷或書寫的標(biāo)記,并將其轉(zhuǎn)換為計(jì)算機(jī)能接受的電信號的設(shè)備,并根據(jù)信息點(diǎn)的涂與未涂和格式
2、文件設(shè)置將信息還原。因此,如何將答題卡填涂的黑色區(qū)域識別出來并使用計(jì)算機(jī)進(jìn)行處理是極為關(guān)鍵的。本論文探索了有效識別答題卡的方法,以matlab為工具,基于數(shù)字圖像處理技術(shù)對答題卡填涂區(qū)域進(jìn)行了識別,并對識別的結(jié)果進(jìn)行了處理,得到了結(jié)果。本論文利用Hough變換的直線檢測技術(shù)檢測圖像的傾斜度,判斷圖像是否傾斜,對存在傾斜的圖像進(jìn)行旋轉(zhuǎn)校正。最終實(shí)現(xiàn)答題卡答案的定位和檢測。論文使用像素統(tǒng)計(jì)方法進(jìn)行識別,利用黑白顏色灰度值的巨大差異對二值圖像的灰度值進(jìn)行累加并進(jìn)行閾值判定,識別錯誤效率極低,能夠準(zhǔn)確的識別答題卡的涂卡標(biāo)記。關(guān)鍵詞:Hough變換,答題卡識別,matlab,一、設(shè)計(jì)任務(wù)、目的和要求本設(shè)
3、計(jì)以matlab為工具利用數(shù)字圖像處理技術(shù)對答題卡進(jìn)行了識別,并對識別結(jié)果進(jìn)行了處理。注意到答題卡在采集圖像的過程中由于各種原因可能會產(chǎn)生圖像傾斜、水平或垂直錯位,要進(jìn)行正確識別首先必須對其進(jìn)行校正,再依據(jù)像素檢索技術(shù)進(jìn)行識別。二、總體方案設(shè)計(jì)說明系統(tǒng)運(yùn)行環(huán)境,編程軟件平臺,編碼算法原理,算法流程圖設(shè)計(jì)本系統(tǒng)運(yùn)行在當(dāng)今主流的Windows7系統(tǒng),使用較新的MATLAB2012b進(jìn)行設(shè)計(jì)。在進(jìn)行旋轉(zhuǎn)校正時,先使用Hough變換檢測出答題卡邊緣直線,調(diào)用lines函數(shù)的參數(shù)得到傾斜角度并進(jìn)行旋轉(zhuǎn)變換從而消除答題卡傾斜狀態(tài)。將掃描部分分為7個掃描區(qū)域,分別使用像素檢索技術(shù),對各個檢索區(qū)域內(nèi)的灰度值進(jìn)
4、行累加,并對累加和進(jìn)行閾值判定,從而得出檢索區(qū)域顏色,完成判定。最后再與標(biāo)準(zhǔn)答案進(jìn)行比對,得出成績。流程圖:開始灰度化Hough變換圖像旋轉(zhuǎn)圖像傾斜嗎? 是 是 否 測量各個掃描區(qū)域的起始坐標(biāo)分別依次統(tǒng)計(jì)各大掃描區(qū)域內(nèi)各個檢測區(qū)域的灰度值閾值判定,得出所檢測區(qū)域顏色并賦值與標(biāo)準(zhǔn)答案比對算出成績結(jié)束三、程序設(shè)計(jì) clc;clear;close;A=imread('原圖.jpg');%讀取圖像imshow(A),title('原圖');gray=rgb2gray(A);bw=edge(gray,'canny');%canny算子邊緣檢測得到二值邊緣圖
5、像h,t,r=hough(bw,'RhoResolution',0.5,'ThetaResolution',0.5); %Hough變換figure,imshow(imadjust(mat2gray(h),'XData',t,'YData',r,'InitialMagnification','fit'),title('Hough變換矩陣');%顯示Hough變換矩陣xlabel('theta'),ylabel('rho');axis on, axis
6、normal,hold on;P=houghpeaks(h,2);x=t(P(:,2);y=r(P(:,1);plot(x,y,'s','color','r'),title('');%獲取并標(biāo)出參數(shù)平面的峰值點(diǎn)lines=houghlines(bw,t,r,P,'FillGap',5,'Minlength',7);%檢測圖像中的直線段figure,imshow(gray);hold on;max_len=0;for i=1:length(lines) xy=lines(i).point1;lines
7、(i).point2; plot(xy(:,1),xy(:,2),'LineWidth',2,'Color','g');%用綠色線段標(biāo)注直線段 plot(xy(:,1),xy(1,2),'x','LineWidth',2,'Color','y'); plot(xy(:,1),xy(2,2),'x','LineWidth',2,'Color','r');%標(biāo)注直線段端點(diǎn)endx=lines.theta;%由與圖像邊緣平行的
8、直線段的斜率得到整個圖像旋轉(zhuǎn)的角度B=imrotate(gray,x);%圖像修正figure,imshow(B),title('旋轉(zhuǎn)后圖像');T=graythresh(B);%使用OTSU方法獲得閥值Tresult=im2bw(B,T);%二值化圖像figure,imshow(result),title('二值化后結(jié)果');%掃描區(qū)域:在本程序中,有7個掃描區(qū)域,分別對應(yīng)題號為1-5,6-10,11-15,16-20,21-25,26-30,31-35這幾個區(qū)域n=52;m=244;% 首先測得答題區(qū)域第一題A選項(xiàng)左上角的坐標(biāo)(52,244)s=60;t=9
9、0;%s為上下兩個掃描區(qū)域的距離,t為左右兩個掃描區(qū)域的距離。P=4;Q=5;%P為字母項(xiàng)的個數(shù)(這里有ABCD共有4項(xiàng)),Q為每個小區(qū)域選項(xiàng)數(shù)。interval_length=14;%左右相鄰兩題填涂區(qū)域左邊線的距離interval_width=9;%上下相鄰兩題填涂區(qū)域上邊線的距離length=11;%填涂區(qū)域的長度width=6;%填涂區(qū)域的寬度a2=zeros(4,5);%初始化灰度值統(tǒng)計(jì)矩陣%第1-5題區(qū)域的檢測for P=1:4 for Q=1:5 %m=244;n=52;%第1-5題區(qū)域的檢測的起始坐標(biāo)(即第一題A選項(xiàng)左上角的坐標(biāo)) a1=result(m+(P-1)*(inte
10、rval_width+1) :m+(P-1)*(interval_width+1)+width,n+(Q-1)*(interval_length+1):n+(Q-1)*(interval_length+1)+length); %得到矩形區(qū)域內(nèi)各像素的灰度值 sum1=sum(sum(a1);%計(jì)算統(tǒng)計(jì)的矩形區(qū)域內(nèi)像素灰度值之和 a2(P,Q)=sum1;%多次循環(huán)后得到20個統(tǒng)計(jì)區(qū)域的灰度值,并依次放在a2矩陣中 endend a2(a2<80)=1;a2(a2>=81)=0;%對灰度值統(tǒng)計(jì)矩陣?yán)锏臄?shù)值進(jìn)行處理,大于某一閥值的值賦1,其余的賦0。 %在此程序中,涂黑則相應(yīng)數(shù)值為1。
11、result1_5=a2;%存儲1-5題的結(jié)果%第6-10題區(qū)域的檢測for P=1:4 for Q=1:5 a1=result(m+s*1+(P-1)*(interval_width+1) :m+s*1+(P-1)*(interval_width+1)+width,n+(Q-1)*(interval_length+1):n+(Q-1)*(interval_length+1)+length); sum1=sum(sum(a1); a2(P,Q)=sum1; endend a2(a2<80)=1;a2(a2>=81)=0;result6_10=a2; %存儲6-10題的結(jié)果%第11-
12、15題區(qū)域的檢測for P=1:4 for Q=1:5 a1=result(m+(P-1)*(interval_width+1) :m+(P-1)*(interval_width+1)+width,n+t*1+(Q-1)*(interval_length+1):n+t*1+(Q-1)*(interval_length+1)+length); sum1=sum(sum(a1); a2(P,Q)=sum1; endend a2(a2<80)=1;a2(a2>=81)=0;result11_15=a2; %存儲11-15題的結(jié)果%第16-20題區(qū)域的檢測for P=1:4 for Q=1
13、:5 a1=result(m+s*1+(P-1)*(interval_width+1) :m+s*1+(P-1)*(interval_width+1)+width,n+t*1+(Q-1)*(interval_length+1):n+t*1+(Q-1)*(interval_length+1)+length); sum1=sum(sum(a1); a2(P,Q)=sum1; endend a2(a2<80)=1;a2(a2>=81)=0;result16_20=a2; %存儲16-20題的結(jié)果%第21-25題區(qū)域的檢測for P=1:4 for Q=1:5 a1=result(m+s*
14、2+(P-1)*(interval_width+1) :m+s*2+(P-1)*(interval_width+1)+width,n+t*1+(Q-1)*(interval_length+1):n+t*1+(Q-1)*(interval_length+1)+length); sum1=sum(sum(a1); a2(P,Q)=sum1; endend a2(a2<80)=1;a2(a2>=81)=0;result21_25=a2; %存儲21-25題的結(jié)果%第26-30題區(qū)域的檢測for P=1:4 for Q=1:5 a1=result(m+s*3+(P-1)*(interval
15、_width+1) :m+s*3+(P-1)*(interval_width+1)+width,n+t*1+(Q-1)*(interval_length+1):n+t*1+(Q-1)*(interval_length+1)+length); sum1=sum(sum(a1); a2(P,Q)=sum1; endend a2(a2<80)=1;a2(a2>=81)=0;result26_30=a2; %存儲26-30題的結(jié)果%第31-35題區(qū)域的檢測for P=1:4 for Q=1:5 a1=result(m+s*4+(P-1)*(interval_width+1) :m+s*4+
16、(P-1)*(interval_width+1)+width,n+t*1+(Q-1)*(interval_length+1):n+t*1+(Q-1)*(interval_length+1)+length); sum1=sum(sum(a1); a2(P,Q)=sum1; endend a2(a2<80)=1;a2(a2>=81)=0;result31_35=a2; %存儲31-35題的結(jié)果answer=result1_5,result6_10,result11_15,result16_20,result21_25,result26_30,result31_35;%將所檢測的7個區(qū)域
17、的結(jié)果匯總dlmwrite('Result.txt',answer);%以txt文本的形式輸出結(jié)果矩陣disp(answer);%在command窗口實(shí)時顯示結(jié)果%附加一個統(tǒng)計(jì)錯誤的并顯示分?jǐn)?shù)的部分,假定正確答案是35個CT=zeros(4,35);%初始化矩陣T(1,:)=1;%設(shè)定正確答案的參數(shù)mark1=answer-T;wrongx=sum(mark1=0);%當(dāng)結(jié)果選錯時,每一列將分別多一個1與-1。選擇正確時,此列都是0。A=sum(sum(wrongx);%統(tǒng)計(jì)非零的結(jié)果。wrong=A/2;%由于-1與1是成對出現(xiàn)的,所以需要將上一步所得結(jié)果除以2.score=
18、35-wrong;%算出結(jié)果fprintf('選擇題得分為%d',score);%在command窗口輸出成績四、模塊測試與分析1、首先進(jìn)行Hough變換,得到Hough變換矩陣如下所述(見圖1)。圖1可以觀察到2個峰值。2、使用Houghlines函數(shù)檢測直線,得到如下結(jié)果(見圖2)圖2并使用lines.theta語句得到直線角度,即為圖像傾斜角度。x=lines.theta x =43、修正圖像(如圖3所示)圖3這時觀察到傾斜的圖像已經(jīng)得到改正。4、在二值化后使用像素檢索技術(shù)對灰度值進(jìn)行統(tǒng)計(jì)。分為7個掃描區(qū)域,如圖4中7個方框所示。圖45、進(jìn)行灰度統(tǒng)計(jì),得到結(jié)果矩陣。最后處理由fprintf語句得到分?jǐn)?shù)。五、測試與調(diào)試過程這次實(shí)驗(yàn)遇到的第一個問題是如何由Hough變換得到直線角度。這個是教材上沒有的。網(wǎng)上提示說是調(diào)用lines函數(shù),但沒有說怎么調(diào)用。后來才從一篇Hough變換的文章中知道是lines.theta,類似于C#的調(diào)用方法。還有就是在本次設(shè)計(jì)中我第一次是將旋轉(zhuǎn)部分和灰度值統(tǒng)計(jì)部分分開寫成2個m文件的,然后再直接合并,結(jié)果發(fā)現(xiàn)有誤。經(jīng)過檢查后發(fā)現(xiàn)matlab在讀取圖片時會在原圖片外加一圈白色“幕布”,導(dǎo)致原圖片的
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
- 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 人人文庫網(wǎng)僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負(fù)責(zé)。
- 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 2025下半年貴州貴陽市花溪區(qū)事業(yè)單位引進(jìn)高層次人才12人高頻重點(diǎn)提升(共500題)附帶答案詳解
- 2025下半年四川內(nèi)江市市本級部分事業(yè)單位招聘工作人員20人高頻重點(diǎn)提升(共500題)附帶答案詳解
- 2025下半年云南紅河蒙自市事業(yè)單位招聘工作人員105人高頻重點(diǎn)提升(共500題)附帶答案詳解
- 2025上海地鐵第二運(yùn)營限公司退役軍人招聘120人高頻重點(diǎn)提升(共500題)附帶答案詳解
- 2025上半年四川廣元青川縣事業(yè)單位招聘97人歷年高頻重點(diǎn)提升(共500題)附帶答案詳解
- 2025上半年臺州市級事業(yè)單位公開招聘工作人員歷年高頻重點(diǎn)提升(共500題)附帶答案詳解
- 紙張消防班組施工合同
- 高鐵建設(shè)簡易合同模板簡化版
- 土石方工程招標(biāo)文
- 設(shè)計(jì)合同履行與監(jiān)督細(xì)節(jié)
- 工會經(jīng)費(fèi)收支預(yù)算表
- 增值稅發(fā)票稅控系統(tǒng)專用設(shè)備注銷發(fā)行登記表
- 質(zhì)量管理體系各條款的審核重點(diǎn)
- 聚丙烯化學(xué)品安全技術(shù)說明書(MSDS)
- 蔬菜采購合同水果蔬菜采購合同
- CX-TGK01C型微電腦時間溫度控制開關(guān)使用說明書
- 《八年級下學(xué)期語文教學(xué)個人工作總結(jié)》
- 電儀工段工段長職位說明書
- 簡易送貨單EXCEL打印模板
- 4s店信息員崗位工作職責(zé)
- 旋轉(zhuǎn)導(dǎo)向+地質(zhì)導(dǎo)向+水平井工具儀器介紹
評論
0/150
提交評論