日本黄色一级经典视频|伊人久久精品视频|亚洲黄色色周成人视频九九九|av免费网址黄色小短片|黄色Av无码亚洲成年人|亚洲1区2区3区无码|真人黄片免费观看|无码一级小说欧美日免费三级|日韩中文字幕91在线看|精品久久久无码中文字幕边打电话

當(dāng)前位置:首頁 > 通信技術(shù) > 通信技術(shù)
[導(dǎo)讀]摘要:文中主要研究移動機器人在環(huán)境未知情況下的障礙物檢測問題,提出了一種基于Matlab和VC++混合編程的障礙物檢測系統(tǒng)軟件實現(xiàn)方法。該方法整合了MATLAB的數(shù)值計算功能,具有強大的圖形、圖像處理功能和VC++的可視

摘要:文中主要研究移動機器人在環(huán)境未知情況下的障礙物檢測問題,提出了一種基于Matlab和VC++混合編程的障礙物檢測系統(tǒng)軟件實現(xiàn)方法。該方法整合了MATLAB的數(shù)值計算功能,具有強大的圖形、圖像處理功能和VC++的可視化、執(zhí)行速度快、易維護升級等特點。實驗結(jié)果表明,這種檢測方法在障礙物檢測系統(tǒng)的開發(fā)過程中可以大大提高編程效率,并縮短軟件的開發(fā)周期。
關(guān)鍵詞:Matlab;VC++;混合編程;障礙物檢測

0 引言
    在智能移動機器人自主導(dǎo)航的研究中,應(yīng)用視覺來進行實時障礙檢測,一直是研究的熱點問題。目前,許多研究工作者已將視覺導(dǎo)航應(yīng)用到移動機器人的移動控制中,但由于其圖像處理數(shù)據(jù)量大、算法較復(fù)雜,因此在具體應(yīng)用中存在實時性較差、道路區(qū)域檢測的算法不夠魯棒、只能適合算法特定的道路模型等缺點。為了提高移動機器人檢測障礙物的實時性,文中提出了一種基于Matlab和VC混合編程的障礙物檢測系統(tǒng)軟件實現(xiàn)方法,可以大大提高編程的效率,縮短軟件的開發(fā)周期,且可以快速準(zhǔn)確地檢測到障礙物。

1 VC++與Matlab混合編程方法
    Matlab是由美國MatlaWorks公司推出的用于算法開發(fā)、數(shù)據(jù)分析以及數(shù)值計算的高級技術(shù)計算語言和交互式環(huán)境,在矩陣運算、數(shù)值計算和圖形顯示等方面,具有強大的功能,非常直觀、簡潔。它為各工程計算領(lǐng)域提供了相應(yīng)的工具箱,在控制界、生物醫(yī)學(xué)工程、語音處理、數(shù)字信號處理、雷達工程、信號分析、計算機技術(shù)等各行各業(yè)中都得到了廣泛的應(yīng)用。但是和其它高級編程語言相比,它的程序執(zhí)行速度較慢,其源代碼的公開不利于算法和數(shù)據(jù)的保密。
    VisualC++是Microsoft公司推出的面向?qū)ο罂梢暬幊痰母呒壋绦蛟O(shè)計語言,它集成了功能強大的編譯器、連接器、調(diào)試器、AppWizard等多種多樣的可視化編程工具。它采用編譯方式運行,運行速度快,特別是編寫界面的能力很強。但它在數(shù)字處理分析、算法工具、編程效率和準(zhǔn)確方便的繪制數(shù)據(jù)圖像方面遠低于Matlab語言。
    Matlab與VC++常用的結(jié)合方法有5種:
    ①Matlab引擎。
    ②用Matcom將Matlab的M文件編譯成C語言文件并嵌入VC++。
    ③使用Matlab提供的函數(shù)庫或C++接口函數(shù)庫直接在VC中編程。
    ④利用Matlab提供的MCC命令生成與Matlab文件對應(yīng)的基于C語言或C++語言的包裹文件,再嵌入VC中。
    ⑤應(yīng)用組建技術(shù)實現(xiàn)Matlab與VC混合編程。
    本研究針對5種方法進行了研究和試驗。后4種方法對于Matlab的圖像處理工具箱只有部分支持,而Matlab引擎對Matlab具有全功能調(diào)用功能,包括對于數(shù)字圖像和通信對象處理的支持,故本文選用Matlab引擎來實現(xiàn)基于VC++和Matlab的障礙物檢測系統(tǒng)研發(fā)平臺。

2 障礙物檢測系統(tǒng)的設(shè)計與實現(xiàn)
2.1 Matlab和VC接口編譯環(huán)境的設(shè)置
    在VC的集成環(huán)境中,如要實現(xiàn)與Matlab引擎之間的通信,需要對VC的編譯環(huán)境進行一些設(shè)置,例如:為VC工程添加Matlab頭文件、添加Matlab庫文件等等。
2.2 VC中調(diào)用Matlab引擎的設(shè)置及程序?qū)崿F(xiàn)
    在VC中利用Matlab引擎進行圖像處理,首先需要在程序中進行一些基本定義,如在使用Matlab引擎類的cpp文件中首先添加語句#inclu-de“engine.h”以及#include“matrix.h”,需要用Engine*m_ep定義Matlab引擎,用m_ep=engOpen(NULL)語句啟動Matlab引擎;最后還要用engClose(m_ep)語句關(guān)閉Matlab引擎等。
    本文研究的障礙物檢測系統(tǒng)主要是先利用雙目立體視覺來檢測障礙物的位置及距離等信息,并對移動機器人的雙攝像機進行控制來采集圖像對,然后對圖像進行一系列的處理。其軟件設(shè)計采用模塊化開發(fā)思想,主要包括圖像采集模塊、邊緣特征提取模塊、Otsu圖像分割模塊、攝像機標(biāo)定模塊、立體匹配模塊和三維重建模塊。障礙物檢測系統(tǒng)主界面如圖1所示。


    圖像Otsu分割Matlab圖像處理部分源程序為:
   


3 障礙物檢測系統(tǒng)檢測過程及結(jié)果
    圖2~5為障礙物檢測系統(tǒng)的處理過程,即從獲取實時圖像、圖像預(yù)處理、障礙物特征提取、特征點匹配等過程,最后通過視差法計算出障礙物的位置坐標(biāo),從而為決策控制提供必要的信息。表1為檢測到的障礙物中的部分點坐標(biāo)。



4 結(jié)束語
    本文利用Matlab和VC++混合編程的方法,將VC++的可視化圖形界面功能和MATLAB的強大圖像處理功能有機的結(jié)合起來,設(shè)計出移動機器人障礙物檢測系統(tǒng)軟件開發(fā)平臺。在實際的科研中,省去了編寫一些復(fù)雜煩瑣的圖像算法代碼,可以為熟悉VC語言的工程技術(shù)開發(fā)實用圖像處理算法研究提供方便;利用Matlab引擎可以簡單有效的實現(xiàn)在VC中調(diào)用Matlab的功能,因此提高了效率,縮短了軟件開發(fā)周期。

本站聲明: 本文章由作者或相關(guān)機構(gòu)授權(quán)發(fā)布,目的在于傳遞更多信息,并不代表本站贊同其觀點,本站亦不保證或承諾內(nèi)容真實性等。需要轉(zhuǎn)載請聯(lián)系該專欄作者,如若文章內(nèi)容侵犯您的權(quán)益,請及時聯(lián)系本站刪除( 郵箱:macysun@21ic.com )。
換一批
延伸閱讀
關(guān)閉