圖像識別技術(shù)報告.doc_第1頁
圖像識別技術(shù)報告.doc_第2頁
圖像識別技術(shù)報告.doc_第3頁
圖像識別技術(shù)報告.doc_第4頁
圖像識別技術(shù)報告.doc_第5頁
已閱讀5頁,還剩33頁未讀 繼續(xù)免費閱讀

下載本文檔

版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進行舉報或認領(lǐng)

文檔簡介

圖像識別技術(shù)課程教師:桑愛軍老師報告組成員:五里霧一、圖像識別簡介圖像識別是指圖形刺激作用于感覺器官,人們辨認出它是經(jīng)驗過的某一圖形的過程,也叫圖像再認。在圖像識別中,既要有當時進入感官的信息,也要有記憶中存儲的信息。只有通過存儲的信息與當前的信息進行比較的加工過程,才能實現(xiàn)對圖像的再認。人的圖像識別能力是很強的。圖像距離的改變或圖像在感覺器官上作用位置的改變,都會造成圖像在視網(wǎng)膜上的大小和形狀的改變。即使在這種情況下,人們?nèi)匀豢梢哉J出他們過去知覺過的圖像。甚至圖像識別可以不受感覺通道的限制。例如,人可以用眼看字,當別人在他背上寫字時,他也可認出這個字來。 圖像識別技術(shù)可能是以圖像的主要特征為基礎(chǔ)的。每個圖像都有它的特征,如字母A有個尖,P有個圈、而Y的中心有個銳角等。對圖像識別時眼動的研究表明,視線總是集中在圖像的主要特征上,也就是集中在圖像輪廓曲度最大或輪廓方向突然改變的地方,這些地方的信息量最大。而且眼睛的掃描路線也總是依次從一個特征轉(zhuǎn)到另一個特征上。由此可見,在圖像識別過程中,知覺機制必須排除輸入的多余信息,抽出關(guān)鍵的信息。同時,在大腦里必定有一個負責整合信息的機制,它能把分階段獲得的信息整理成一個完整的知覺映象。 在人類圖像識別系統(tǒng)中,對復雜圖像的識別往往要通過不同層次的信息加工才能實現(xiàn)。對于熟悉的圖形,由于掌握了它的主要特征,就會把它當作一個單元來識別,而不再注意它的細節(jié)了。這種由孤立的單元材料組成的整體單位叫做組塊,每一個組塊是同時被感知的。在文字材料的識別中,人們不僅可以把一個漢字的筆劃或偏旁等單元組成一個組塊,而且能把經(jīng)常在一起出現(xiàn)的字或詞組成組塊單位來加以識別。圖像識別技術(shù)是人工智能的一個重要領(lǐng)域。為了編制模擬人類圖像識別活動的計算機程序,人們提出了不同的圖像識別模型。例如模板匹配模型。這種模型認為,識別某個圖像,必須在過去的經(jīng)驗中有這個圖像的記憶模式,又叫模板。當前的刺激如果能與大腦中的模板相匹配,這個圖像也就被識別了。例如有一個字母A,如果在腦中有個A模板,字母A的大小、方位、形狀都與這個A模板完全一致,字母A就被識別了。這個模型簡單明了,也容易得到實際應用。但這種模型強調(diào)圖像必須與腦中的模板完全符合才能加以識別,而事實上人不僅能識別與腦中的模板完全一致的圖像,也能識別與模板不完全一致的圖像。例如,人們不僅能識別某一個具體的字母A,也能識別印刷體的、手寫體的、方向不正、大小不同的各種字母A。同時,人能識別的圖像是大量的,如果所識別的每一個圖像在腦中都有一個相應的模板,也是不可能的。 為了解決模板匹配模型存在的問題,格式塔心理學家又提出了一個原型匹配模型。這種模型認為,在長時記憶中存儲的并不是所要識別的無數(shù)個模板,而是圖像的某些“相似性”。從圖像中抽象出來的“相似性”就可作為原型,拿它來檢驗所要識別的圖像。如果能找到一個相似的原型,這個圖像也就被識別了。這種模型從神經(jīng)上和記憶探尋的過程上來看,都比模板匹配模型更適宜,而且還能說明對一些不規(guī)則的,但某些方面與原型相似的圖像的識別。但是,這種模型沒有說明人是怎樣對相似的刺激進行辨別和加工的,它也難以在計算機程序中得到實現(xiàn)。因此又有人提出了一個更復雜的模型,即“泛魔”識別模型。二、具體應用實例基于方向梯度極值的手形輪廓跟蹤算法摘要針對受自然光照影響的手形圖像難以準確提取手形輪廓的問題,本文基于手形邊界像素在垂直于邊界方向上存在灰度突變的特性,提出了一種基于方向梯度極值的手形輪廓跟蹤算法。該算法首先找到手形輪廓的起始點,然后按照一定的搜索方向和規(guī)則,在局部區(qū)域內(nèi)計算候選點集中梯度極大值所在的點,并逐點跟蹤極大值點,得到手形輪廓。將該方法在實驗室自采圖庫及香港科技大學(HKUST)的手形圖像庫兩個數(shù)據(jù)庫中進行輪廓跟蹤實驗,結(jié)果顯示,自采圖庫的跟蹤準確率為100%,香港科技大學手形圖像庫的跟蹤準確率為85.8%,該庫中符合本文算法限制條件的圖像的跟蹤準確率為99.4%。實驗結(jié)果表明,該方法能在灰度圖像上直接跟蹤出準確、連續(xù)、完整的手形輪廓,尤其適合于受光照不均影響的手形圖像的邊緣提取。1 引言在生物特征識別領(lǐng)域,手形識別以其采集方便、處理速度快、對設(shè)備要求不高、易與其它特征組合成多生物特征識別等優(yōu)點而備受關(guān)注和重視,已成為一種極具發(fā)展?jié)摿Φ纳锾卣髯R別技術(shù)。手形識別是指對手部的外部輪廓所構(gòu)成的幾何圖形進行識別,提取的特征為手的不同部位的尺寸或是手指邊緣的輪廓點集。因此手形輪廓提取的準確程度對整個手形識別過程至關(guān)重要,直接決定了提取特征的準確性。采用現(xiàn)有的手形提取方法獲取完整準確的手形輪廓圖形時,對采集設(shè)備的遮光和光線要求比較嚴格,采集的大多是前景和背景灰度差異十分明顯的不受光照影響的手形圖像,通過閾值二值化和圖像濾波來獲得較好的分割效果。但這些手形提取方法都局限于各自的圖像條件,適用范圍局限性大。在實際應用中往往不便于在采集圖像時加入過多的限制條件,一是限制條件過多會使用戶覺得不友好,甚至產(chǎn)生抵觸情緒;二是這大大減小了手形識別/認證的適用范圍,制約其發(fā)展??紤]到友好性、實用性和價格等因素,手形識別應盡量選用普通低成本設(shè)備,并盡量減少手形采集時的限制條件,但這就使得實際應用環(huán)境中采集的圖像會不同程度地受到光照環(huán)境和采集設(shè)備的影響。如偏光導致的高光和陰影以及隨著照明光源的位置變化,極易在提取過程中造成手形輪廓的缺失和冗余,而設(shè)備噪聲也會給手形輪廓的提取造成很大的誤差。因此,在這些圖像條件下,原有的手形提取方法不再適用,需要尋找與之相適應的新的手形提取方法,以確保提取的特征受外界環(huán)境的干擾盡可能小。針對實際環(huán)境中自然光照條件下拍攝的圖像易受光照影響,而原有方法難以準確提取輪廓的問題,本文提出了一種基于方向梯度極值的手形輪廓跟蹤算法,在灰度圖像上直接跟蹤手形輪廓。該方法利用手形邊界像素在垂直于邊界方向上存在灰度突變的特性,從手形輪廓起始點開始,通過計算局部區(qū)域內(nèi)的候選點中梯度極大值所在的點,并逐點跟蹤極大值點得到手形輪廓。分別應用該算法對實驗室自采的手形圖像庫和香港科技大學提供的手形圖像庫進行實驗,結(jié)果表明了該算法的有效性。2 本文輪廓跟蹤方法在手形灰度圖像中,位于手形邊界輪廓處的像素,在垂直于邊界方向上存在灰度級的迅速變化,且真實邊界點在垂直于邊界方向上的灰度梯度應為局部區(qū)域內(nèi)各像素梯度的極大值,因此可以通過判斷局部區(qū)域內(nèi)各點灰度梯度的大小找到手形的真實邊緣點。本文方法首先定位手形輪廓的起始點,然后依據(jù)手形輪廓的走向在局部區(qū)域內(nèi)確定出候選的輪廓點集,用合適的梯度卷積模板計算出候選像素點集中垂直于邊緣方向上梯度最大的點(此處的邊緣方向是指:從上一輪廓點到該候選點的方向),并逐點跟蹤梯度最大點,既可得到完整的手形輪廓。通過對大量圖像的觀察,發(fā)現(xiàn)位于手形邊緣處存在34個像素寬度的灰度過渡變化帶,如圖1所示。由于該過渡帶的存在,手形邊界處的像素并非在單像素寬度內(nèi)呈現(xiàn)梯度的急劇變化,因此用簡單的微分算子難以找到真實邊緣。算法關(guān)鍵是:(1)找到合適的梯度卷積模板;(2)在手形邊界的過渡帶像素中確定出真實邊界點的準則。若選取的梯度卷積模板過小,則受過渡帶像素的影響大,易出現(xiàn)梯度極大值所在的點偏離手形輪廓的情況;而模板過大不僅會導致算法計算量大,而且對于手指間縫隙較小的圖像,在跟蹤至指跟處時,由于輪廓像素的方向變化較快,過大的模板窗口在此處卷積后的值表征垂直于輪廓方向梯度的能力減小,影響跟蹤的準確性。因此梯度卷積模板的選取至關(guān)重要。本文通過用不同大小、不同方向的模板對大量圖像進行實驗驗證得出:本文選用的5X5大小的4個方向的梯度卷積模板計算手形邊緣像素的灰度梯度效果最優(yōu)。本文均以手腕部位在圖像右側(cè)的右手圖像為例闡述該算法,如圖2。2.1 輪廓跟蹤算法描述2.1.1 確定輪廓跟蹤起始點本文算法設(shè)定輪廓跟蹤起始點為圖像最右列的手腕上邊緣點。位于手腕邊緣處的像素點,灰度級存在明顯變化,且真實邊緣點處應有最大的灰度變化。微分邊緣檢測算子在圖像灰度級迅速變化的點處得到較高的值,且灰度級變化越大,該點所得的值越大。因此本文用一個豎直方向的邊緣檢測模板(模板1),逐點與圖像最右列像素做卷積,卷積所得的值即為圖像中與模板中心元素對應的像素點在豎直方向上的梯度,梯度值最大且為正值的點即為手形輪廓起始點。若在定位輪廓起始點時,出現(xiàn)兩個梯度值最大且為正值的點的情況,則增大梯度模板,將模板上下各增加一個元素,用新模板對這兩個梯度值最大且為正值的點重新求取梯度值,若兩點的梯度值仍相等,則繼續(xù)增大模板,直至找到唯一的輪廓起始點。若出現(xiàn)兩個以上梯度值相同的點,可用同樣方法處理。2.1.2 確定第二、第三輪廓點及輪廓走向依據(jù)起始點位置,確定第二、第三輪廓點。本文輪廓跟蹤順序為:從起始點開始,沿逆時針方向,按照手形輪廓的自然走向逐點跟蹤,直至跟蹤到達圖像右側(cè)邊緣,結(jié)束跟蹤。因此第二輪廓點的候選點集為起始點(i, j)左側(cè)的3個鄰域像素點,如圖3所示,3個候選點為(i-1,j-1),(i,j-1),(i+1,j-1)。由于此時候選像素點位于圖像邊界,若采用本文的5X5模板進行卷積,位于圖像邊緣處的像素不夠容納模板窗口的大小,因此不適宜用本文5X5模板求取梯度的方法確定第二輪廓點。故對第二輪廓點采用了如下求取方法:(1)依據(jù)公式(1)求得最大值MAX。(2)當公式(1)取得最大值MAX時,對應的像素點坐標(i+k,j-1)為第二輪廓點。MAX=maxabsh(i+k,j-1)-h(i+k-1,j-1) k=-1,0,1(1)其中:h(p,q)為圖像中第p行,第q列像素點的灰度值。第二輪廓點確定后,依據(jù)第二輪廓點位置,用相同方法確定第三輪廓點,并將第三輪廓點作為當前點,將第二輪廓點到第三輪廓點的方向記錄為當前方向。2.1.3 輪廓跟蹤規(guī)則根據(jù)前一步的走向,即當前方向,確定下一步的可能走向(3個可選方向)。下一步走向的三個可選方向分別為當前方向以及對應于8方向碼(如圖4)中的當前方向的兩個鄰接方向。例如:若當前方向為4,則下一步的可選方向為3、4、5;若當前方向為5,則下一步的可選方向為4、5、6;其余同理。對3個可能走向分別以從當前點沿該方向前進一點作為候選點,得到3個候選點,將每個候選點對應于卷積模板的中心元素求卷積。模板的選取是根據(jù)從當前點到該候選點的方向(稱為候選方向)確定的,每個不同的候選方向?qū)诓煌木矸e模板進行計算。若候選方向為0或4,選用0度方向模板;若候選方向為1或5,用135度方向模板;若候選方向為2或6,用90度方向模板;若候選方向為3或7,用45度方向模板,四個方向的卷積模板如圖5所示。對3個候選點分別用與之相對應的方向梯度卷積模板求卷積,求得的值即為與該候選點的走向垂直方向上的梯度。當某一候選點位于手形輪廓真實邊緣時,其垂直于邊緣方向的梯度在三個候選點中應呈現(xiàn)出最大值。因此3個候選點中梯度絕對值最大的點以及該點對應的方向即為下一輪廓點及下一步走向。將找到的下一輪廓點作為新的當前點,將其對應的方向作為新的當前方向,循環(huán)此過程,直至遇到終止條件結(jié)束跟蹤。0度方向模板檢測的是垂直方向的梯度,45度方向模板檢測的是135度方向的梯度,其余兩個方向模板同理。2.1.4 輪廓跟蹤的終止條件依據(jù)模板窗口大小和跟蹤結(jié)束時的輪廓走向,當當前點的橫坐標距離圖像右側(cè)邊界小于3個像素的距離,且跟蹤方向為0或1或7時,跟蹤結(jié)束。2.2 算法步驟(1)對圖像中最右列的上數(shù)第四點至下數(shù)第四點之間的像素逐點用模板1做卷積,卷積所得的值最大的點記為輪廓跟蹤的起始點。若得到兩個(或兩個以上)值最大的點,則將模板1上下各增加一個元素,用新模板對這兩點重新做卷積,直至只得到一個最大值為止。初始化輪廓數(shù)組,并將起始點存入輪廓數(shù)組。(2)將起始點的左側(cè)鄰域三點分別作為候選點,依據(jù)公式(1)計算得到第二輪廓點。再以第二輪廓點左側(cè)鄰域三點為候選點,用同樣方法找到第三輪廓點。將第二、第三輪廓點分別存入輪廓數(shù)組。將第三輪廓點作為當前點CurrentPoint,將第二輪廓點到第三輪廓點的方向記錄為當前方向CurrentDirection。(3)將當前方向CurrentDirection以及對應于圖4方向碼中當前方向的兩個鄰接方向作為下一步的3個可能走向。(4)從當前點沿著每個可能走向分別前進一點作為候選點。對每個候選點,依據(jù)從當前點到該候選點的方向,從圖5中選取與該方向相對應的卷積模板,將該候選點對應于模板中心元素求卷積,將卷積結(jié)果的絕對值作為該候選點的灰度梯度值。(5)比較第(4)步中3個候選點的灰度梯度值的大小,將值最大的候選點作為下一個輪廓點(若3個候選點的灰度梯度值出現(xiàn)相等的情況,則若出現(xiàn)相等情況的點中包括中心方向上的點,則取中心方向上的點作為下一輪廓點;否則,取中心方向右側(cè)方向上的點作為下一輪廓點)。將找到的輪廓點存入輪廓數(shù)組,將當前方向更新為從當前點到該輪廓點的方向,再將當前點更新為該輪廓點。(6)判斷當前點坐標是否滿足結(jié)束條件。若當前點的橫坐標距離圖像右側(cè)邊界小于3個像素,且跟蹤方向為0或1或7時,跟蹤結(jié)束,否則轉(zhuǎn)(3)繼續(xù)執(zhí)行。參考文獻:基于方向梯度極值的手形輪廓跟蹤算法,苑瑋琦,董 茜,桑海峰,沈陽工業(yè)大學視覺檢測技術(shù)研究所。3 實驗結(jié)果處理圖像:代碼程序:建立10個m文件er.m,fangxianghans.m, gezhongsuanfa.m, juanji.m, lunkuo.m, moban.m, qishi.m, san.m, Untitled.m, youle.m,最終運行Untitled文件,代碼如下:1、er.m:function secondpoint=er(firstpoint,I)M N=size(I);for i=1:3chazhi(i)=I(M-1,firstpoint+i-1)-I(M-1,firstpoint+i-2);endsecond=find(chazhi=max(chazhi);secondpoint=firstpoint+second(1)-1;2、fangxianghans.m:function fangxiang=fangxianghans(yqian,xqian,yhou,xhou)fang2=xhou-xqian;%1 0 -1 左右fang1=yhou-yqian;%1 0 -1 上下if fang1=0&fang2=-1 %向左 左 1 fangxiang=1;endif fang1=-1&fang2=-1 %向左上 左上2 fangxiang=2;endif fang1=-1&fang2=0 %向上 fangxiang=3;endif fang1=-1&fang2=1 %向右上 右上4 fangxiang=4;endif fang1=0&fang2=1 %向右 右5 fangxiang=5;endif fang1=1&fang2=1 %向右下 右下6 fangxiang=6; endif fang1=1&fang2=0 %向下 fangxiang=7;endif fang1=1&fang2=-1 %向左下 左下8 fangxiang=8;endfangxiang=fangxiang;3、gezhongsuanfa.m:clear;I=imread(5.bmp);% 讀圖片%figure;%imshow(I);%原圖像顯示%i2=im2bw(I,0.30);% 二值化%imshow(i2);%二值化顯示BW = edge(I,sobel,0.3);figure;imshow(BW);%原圖像顯示title(soble);BW = edge(I,prewitt);figure;imshow(BW);%原圖像顯示title(prewitt);BW = edge(I,roberts);figure;imshow(BW);%原圖像顯示title(roberts);BW = edge(I,log);figure;imshow(BW);%原圖像顯示title(log);BW = edge(I,canny);figure;imshow(BW);%原圖像顯示title(canny);4、juanji.m:function pointvalue=juanji(xianpointy,xianpointx,I,y,x,moban)wei_y=xianpointy+y;wei_x=xianpointx+x;I=im2double(I);pointvalues=0;for ii=1:5 for jj=1:5 pointvalues=I(wei_y+ii-3,wei_x+jj-3)*moban(ii,jj)+pointvalues; endend pointvalue=abs(pointvalues);5、lunkuo.m:function I_lunkuo=lunkuo(secondpoint,thirdpoint,I)M N=size(I);%fangxiang=fangxianghans(M,secondpoint,M-1,thirdpoint);%xianpointx=thirdpoint;%xianpointy=secondpoint;points(2)=secondpoint;points(1)=M-1;point(2)=thirdpoint;point(1)=M-2;flag=1;count=4;lunkuopoint(1,1)=1;lunkuopoint(1,2)=1;lunkuopoint(2,1)=M-1;lunkuopoint(2,2)=secondpoint;lunkuopoint(3,1)=M-2;lunkuopoint(3,2)=thirdpoint;while flag=1fangxiang=fangxianghans(points(1),points(2),point(1),point(2);xianpointy=point(1);xianpointx=point(2);pointqian=moban(fangxiang,xianpointy,xianpointx,I);points=point;point=pointqian;if point(1)=M-2&point(2)=thirdpoint%if count=M-10flag=0;end%if point(1)=M-5&point(2)=thirdpoint%if count=200%flag=0;%endlunkuopoint(count,1)=point(1) ; lunkuopoint(count,2)=point(2);count=count+1;endM N=size(I);for ii=1:M for jj=1:N I_lunkuo(ii,jj)=0; endendfor iii=1:count-2 I_lunkuo(lunkuopoint(iii,1),lunkuopoint(iii,2)=255;endmm=lunkuopoint;6、moban.m:function pointqian=moban(fangxiang,xianpointy,xianpointx,I)moban1=0 1 1 1 0; 0 1 1 1 0; 0 0 0 0 0; 0 -1 -1 -1 0; 0 -1 -1 -1 0;moban2=0 1 1 0 0; 1 1 1 0 0; 1 1 0 -1 -1; 0 0 -1 -1 -1; 0 0 -1 -1 0;moban3=0 0 0 0 0; 1 1 0 -1 -1; 1 1 0 -1 -1; 1 1 0 -1 -1; 0 0 0 0 0;moban4=0 0 1 1 0; 0 0 1 1 1; -1 -1 0 1 1; -1 -1 -1 0 0; -1 -1 0 0 0; % a=1111switch fangxiang case 1 pointqian1=juanji(xianpointy,xianpointx,I,1,-1,moban2);%向左下 8 4 pointqian2=juanji(xianpointy,xianpointx,I,0,-1,moban1);%繼續(xù)向左 1 1 pointqian3=juanji(xianpointy,xianpointx,I,-1,-1,moban4);%向左上 2 2 case 2 pointqian1=juanji(xianpointy,xianpointx,I,0,-1,moban1);%向左 1 1 pointqian2=juanji(xianpointy,xianpointx,I,-1,-1,moban4);%繼續(xù)左上 2 2 pointqian3=juanji(xianpointy,xianpointx,I,-1,0,moban3);%向上 3 3 case 3 pointqian1=juanji(xianpointy,xianpointx,I,-1,-1,moban4);%向左上 2 4 pointqian2=juanji(xianpointy,xianpointx,I,-1,0,moban3);%繼續(xù)向上 3 3 pointqian3=juanji(xianpointy,xianpointx,I,-1,1,moban2);%向右上 4 2 case 4 pointqian1=juanji(xianpointy,xianpointx,I,-1,0,moban3);%向上 3 pointqian2=juanji(xianpointy,xianpointx,I,-1,1,moban2);%繼續(xù)右上 4 2 pointqian3=juanji(xianpointy,xianpointx,I,0,1,moban1);%向右 5 case 5 pointqian1=juanji(xianpointy,xianpointx,I,-1,1,moban2);%向右上 4 2 pointqian2=juanji(xianpointy,xianpointx,I,0,1,moban1);%繼續(xù)向右 5 pointqian3=juanji(xianpointy,xianpointx,I,1,1,moban4);%向右下 6 2 case 6 pointqian1=juanji(xianpointy,xianpointx,I,0,1,moban1);%向右 5 pointqian2=juanji(xianpointy,xianpointx,I,1,1,moban4);%繼續(xù)右下 6 pointqian3=juanji(xianpointy,xianpointx,I,1,0,moban3);%向下 7 case 7 pointqian1=juanji(xianpointy,xianpointx,I,1,1,moban4);%向右下 6 4 pointqian2=juanji(xianpointy,xianpointx,I,1,0,moban3);%繼續(xù)向下 7 pointqian3=juanji(xianpointy,xianpointx,I,1,-1,moban2);%向左下 8 2 case 8 pointqian1=juanji(xianpointy,xianpointx,I,1,0,moban3);%向下 7 pointqian2=juanji(xianpointy,xianpointx,I,1,-1,moban2);%繼續(xù)左下 8 2 pointqian3=juanji(xianpointy,xianpointx,I,0,-1,moban1);%向左 1end bijiao(1)=pointqian1;bijiao(2)=pointqian2;bijiao(3)=pointqian3;suoyins=find(max(bijiao)=bijiao);suoyin=suoyins(1);switch fangxiang case 1 if suoyin=1 pointqian(1)=xianpointy+1; pointqian(2)=xianpointx-1; end if suoyin=2 pointqian(1)=xianpointy; pointqian(2)=xianpointx-1; end if suoyin=3 pointqian(1)=xianpointy-1; pointqian(2)=xianpointx-1; end case 2 if suoyin=1 pointqian(1)=xianpointy; pointqian(2)=xianpointx-1; end if suoyin=2 pointqian(1)=xianpointy-1; pointqian(2)=xianpointx-1; end if suoyin=3 pointqian(1)=xianpointy-1; pointqian(2)=xianpointx; end case 3 if suoyin=1 pointqian(1)=xianpointy-1; pointqian(2)=xianpointx-1; end if suoyin=2 pointqian(1)=xianpointy-1; pointqian(2)=xianpointx; end if suoyin=3 pointqian(1)=xianpointy-1; pointqian(2)=xianpointx+1; end case 4 if suoyin=1 pointqian(1)=xianpointy-1; pointqian(2)=xianpointx; end if suoyin=2 pointqian(1)=xianpointy-1; pointqian(2)=xianpointx+1; end if suoyin=3 pointqian(1)=xianpointy; pointqian(2)=xianpointx+1; end case 5 if suoyin=1 pointqian(1)=xianpointy-1; pointqian(2)=xianpointx+1; end if suoyin=2 pointqian(1)=xianpointy; pointqian(2)=xianpointx+1; end if suoyin=3 pointqian(1)=xianpointy+1; pointqian(2)=xianpointx+1; end case 6 if suoyin=1 pointqian(1)=xianpointy; pointqian(2)=xianpointx+1; end if suoyin=2 pointqian(1)=xianpointy+1; pointqian(2)=xianpointx+1; end if suoyin=3 pointqian(1)=xianpointy+1; pointqian(2)=xianpointx; end case 7 if suoyin=1 pointqian(1)=xianpointy+1; pointqian(2)=xianpointx+1; end if suoyin=2 pointqian(1)=xianpointy+1; pointqian(2)=xianpointx; end if suoyin=3 pointqian(1)=xianpointy+1; pointqian(2)=xianpointx-1; end case 8 if suoyin=1 pointqian(1)=xianpointy+1; pointqian(2)=xianpointx; end if suoyin=2 pointqian(1)=xianpointy+1; pointqian(2)=xianpo

溫馨提示

  • 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會有圖紙預覽,若沒有圖紙預覽就沒有圖紙。
  • 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
  • 5. 人人文庫網(wǎng)僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負責。
  • 6. 下載文件中如有侵權(quán)或不適當內(nèi)容,請與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

評論

0/150

提交評論