智能車(chē)上位機(jī)_第1頁(yè)
智能車(chē)上位機(jī)_第2頁(yè)
智能車(chē)上位機(jī)_第3頁(yè)
全文預(yù)覽已結(jié)束

下載本文檔

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

文檔簡(jiǎn)介

1、智能車(chē)上位機(jī)全功能版-攝像頭組協(xié)議說(shuō)明文檔一、發(fā)送圖像的協(xié)議:要想上位機(jī)能夠正確顯示下位機(jī)發(fā)送過(guò)來(lái)的灰度圖像數(shù)據(jù)就必須注意以 下幾點(diǎn):首先要確保上下位機(jī)設(shè)置的波特率要一致。否則接收到的數(shù)據(jù)全部是 亂的,此時(shí)上位機(jī)的狀態(tài)是:接收到字節(jié)數(shù),但顯示全部丟失。設(shè)置好上位機(jī)的圖像大小,要保證跟下位機(jī)發(fā)送的圖像大小一致。 圖像寬度,即圖像數(shù)組的總列數(shù),圖像高度,即圖像數(shù)組的總行數(shù)。 如果上位機(jī)的圖像大小跟下位機(jī)發(fā)送的不一致,那么此時(shí)上位機(jī)的狀態(tài) 將是:發(fā)送圖像數(shù)據(jù)之前請(qǐng)先發(fā)送一個(gè)幀頭0 x01到串口。發(fā)送圖像數(shù)據(jù)的過(guò)程中,請(qǐng)你多加一個(gè)判斷語(yǔ)句,如果當(dāng)前要發(fā)送的 圖像數(shù)據(jù)跟幀頭0 x01 一樣,請(qǐng)你該發(fā)另一

2、個(gè)數(shù)比如0 x02 (我們最好 要這么樣做,因?yàn)閹^是告訴上位機(jī)一幀圖像的接收開(kāi)始,當(dāng)上位機(jī) 接收到0 x01時(shí)就要從0開(kāi)始計(jì)數(shù),當(dāng)計(jì)數(shù)到一幅圖像的大小后,如果 再接收到一個(gè)0 x01,就表明這幅圖像完整接收了,中途中沒(méi)有數(shù)據(jù)的 丟失,這時(shí)候上位機(jī)才把這幅正確的圖像顯示出來(lái)。否則,當(dāng)上位機(jī) 的計(jì)數(shù)尚未等于一幅圖像的全部字節(jié)數(shù)又接收到一個(gè)0 x01,就認(rèn)為這 幅圖像是已經(jīng)在傳輸中有丟失了。此時(shí)上位機(jī)的處理是直接丟棄這幅 不完整的圖像,也許你可能要說(shuō)干嘛要全部丟掉呢,把接收不足的字 節(jié)數(shù)用0或者1任意一個(gè)字節(jié)來(lái)填充不就好了嗎。想法固然是好的, 但是這是不可行的,因?yàn)槲覀儾恢肋@幅圖像數(shù)據(jù)到底丟失哪

3、一部 分,我們無(wú)法對(duì)這部分進(jìn)行填充處理,假如我們填充的地方錯(cuò)誤,那 么圖像將混亂不清,這時(shí)候?qū)δ愕恼{(diào)試將帶來(lái)無(wú)限的麻煩,不知道到 底哪里出了問(wèn)題的。)在一幅圖像數(shù)據(jù)全部發(fā)送完的后面再發(fā)一個(gè)0 x01到串口,因?yàn)樯衔粰C(jī) 接收的一幅圖像的判斷是前一個(gè)0 x01后一個(gè)0 x01中間長(zhǎng)度恰好是一 幅圖像大小。如果在一幅圖像數(shù)據(jù)全部發(fā)送完的后面不發(fā)送0 x01時(shí), 如果是連續(xù)發(fā)送過(guò)程,那么你將丟失最后的一幅圖像,如果你只發(fā)一 幅圖像,那么上位機(jī)將顯示不出任何圖像。發(fā)送灰度圖像經(jīng)典樣例:比如說(shuō)你采集的圖像尺寸為80*30, ImageDataHEIGHTWIDTH為二維數(shù)組存放圖像,SendByte(c)

4、為發(fā)送c到串口的函數(shù)首先我們先打開(kāi)上位機(jī),設(shè)置好上位機(jī)的圖像大小為80*30.然后下位機(jī)的發(fā)送代碼如下:#define WIDTH 80 圖像寬度,即數(shù)組列數(shù)#define HEIGHT 30 圖像高度,即數(shù)組行數(shù)unsigned char ImageDataHEIGHTWIDTH;/發(fā)送一幀圖像的函數(shù)里面要寫(xiě)的代碼開(kāi)始/先發(fā)送幀頭,發(fā)送0 x01到串口SendByte(0 x01);發(fā)送圖像數(shù)據(jù)for(i=0;iHEIGHT;i+)for(j=0;jWIDTH;j+)如果圖像數(shù)據(jù)中跟幀頭一樣的數(shù)據(jù),則改之。/避免圖像數(shù)據(jù)與幀頭沖突,導(dǎo)致上位機(jī)誤判斷為圖像邊界而引起的數(shù)據(jù)大量丟失的情況。if(

5、ImageDataj = 0 x01)ImageDataj=0 x02;SendByte(ImageDataj);/最好在一幀圖像數(shù)據(jù)發(fā)完后也要發(fā)一個(gè)幀頭標(biāo)志避免只發(fā)一幀圖像的時(shí)候上位機(jī)檢測(cè)不到下一個(gè)幀頭而顯示不出圖像 的尷尬局面。SendByte(0 x01)/ 發(fā)送 0 x01 到串口/發(fā)送一幀圖像的函數(shù)里面要寫(xiě)的代碼結(jié)束二、只發(fā)圖像中心線的協(xié)議:A、問(wèn)題描述:我們發(fā)送的完整一幅圖像數(shù)據(jù)的時(shí)候,由于數(shù)據(jù)量大,只能在前 期調(diào)試和研究圖像處理的時(shí)候有用處,但是當(dāng)我們到后期調(diào)試的時(shí) 候,我們就沒(méi)有必要發(fā)送完整的一幅圖像數(shù)據(jù)了。我們只想看看我們 對(duì)圖像進(jìn)行的中心線提取到底穩(wěn)定情況如何。所以我們只要發(fā)送提取 到的中心線數(shù)據(jù)就行了。因?yàn)橹行木€數(shù)據(jù)很少,所以可以讓車(chē)邊跑邊 發(fā)送中心線回來(lái)。B、操作第一步:把上位機(jī)界面上的只接收中心線選項(xiàng)打勾C、設(shè)置好上位機(jī)的圖像大小跟下位機(jī)的圖像大小一致。(說(shuō)明:因?yàn)樯衔粰C(jī)接收到一條完整的中心線后需要還原出這條中心線在 這幅圖像的位置。如果沒(méi)有設(shè)置,那么上位機(jī)還原出來(lái)的中心線 位置就不是原圖實(shí)際的中心線位置了。)C、下位機(jī)發(fā)送的數(shù)據(jù)格式如下:首先先發(fā)兩個(gè)字節(jié)0XFF 0XFF的幀頭數(shù)據(jù)然后再發(fā)送中心線數(shù)組:假如你的圖像數(shù)組大小為

溫馨提示

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

評(píng)論

0/150

提交評(píng)論