工地臨邊防護(hù)缺失識(shí)別檢測(cè)系統(tǒng)通過(guò)opencv+python網(wǎng)絡(luò)模型技術(shù),工地臨邊防護(hù)缺失識(shí)別檢測(cè)算法檢測(cè)到?jīng)]有按照要求放置臨邊防護(hù)設(shè)備時(shí),將自動(dòng)發(fā)出警報(bào)提示現(xiàn)場(chǎng)管理人員及時(shí)采取措施。Python是一門解釋性腳本語(yǔ)言,是在運(yùn)行的時(shí)候?qū)⒊绦蚍g成機(jī)器語(yǔ)言;解釋型語(yǔ)言的程序不需要在運(yùn)行前編譯,在運(yùn)行程序的時(shí)候才翻譯,專門的解釋器負(fù)責(zé)在每個(gè)語(yǔ)句執(zhí)行的時(shí)候解釋程序代碼,所以解釋型語(yǔ)言每執(zhí)行一次就要翻譯一次,與之對(duì)應(yīng)的還有編譯性語(yǔ)言。Python是一門跨平臺(tái)、腳本以及開(kāi)發(fā)應(yīng)用的編程語(yǔ)言,跨平臺(tái):跨平臺(tái)概念是軟件開(kāi)發(fā)中一個(gè)重要的概念,即不依賴于操作系統(tǒng),也不依賴硬件環(huán)境。一個(gè)操作系統(tǒng)(如Windows)下開(kāi)發(fā)的應(yīng)用,放到另一個(gè)操作系統(tǒng)(如Linux)下依然可以運(yùn)行。?
OpenCV基于C++實(shí)現(xiàn),同時(shí)提供python, Ruby, Matlab等語(yǔ)言的接口。OpenCV-Python是OpenCV的Python API,結(jié)合了OpenCV C++API和Python語(yǔ)言的最佳特性。OpenCV可以在不同的系統(tǒng)平臺(tái)上使用,包括Windows,Linux,OS,X,Android和iOS?;贑UDA和OpenCL的高速GPU操作接口也在積極開(kāi)發(fā)中。OpenCV的全稱是Open Source Computer Vision Library,是一個(gè)跨平臺(tái)的計(jì)算機(jī)視覺(jué)處理開(kāi)源軟件庫(kù),是由Intel公司俄羅斯團(tuán)隊(duì)發(fā)起并參與和維護(hù),支持與計(jì)算機(jī)視覺(jué)和機(jī)器學(xué)習(xí)相關(guān)的眾多算法,以BSD許可證授權(quán)發(fā)行,可以在商業(yè)和研究領(lǐng)域中免費(fèi)使用。OpenCV可用于開(kāi)發(fā)實(shí)時(shí)的圖像處理、計(jì)算機(jī)視覺(jué)以及模式識(shí)別程序,該程序庫(kù)也可以使用英特爾公司的IPP進(jìn)行加速處理。
Python是一種由Guido van Rossum開(kāi)發(fā)的通用編程語(yǔ)言,它很快就變得非常流行,主要是因?yàn)樗暮?jiǎn)單性和代碼可讀性。它使程序員能夠用更少的代碼行表達(dá)思想,而不會(huì)降低可讀性。與C / C++等語(yǔ)言相比,Python速度較慢。也就是說(shuō),Python可以使用C / C++輕松擴(kuò)展,這使我們可以在C / C++中編寫計(jì)算密集型代碼,并創(chuàng)建可用作Python模塊的Python包裝器。這給我們帶來(lái)了兩個(gè)好處:首先,代碼與原始C / C++代碼一樣快(因?yàn)樗窃诤笈_(tái)工作的實(shí)際C++代碼),其次,在Python中編寫代碼比使用C / C++更容易。OpenCV-Python是原始OpenCV C++實(shí)現(xiàn)的Python包裝器。OpenCV-Python使用Numpy,這是一個(gè)高度優(yōu)化的數(shù)據(jù)庫(kù)操作庫(kù),具有MATLAB風(fēng)格的語(yǔ)法。所有OpenCV數(shù)組結(jié)構(gòu)都轉(zhuǎn)換為Numpy數(shù)組。這也使得與使用Numpy的其他庫(kù)(如SciPy和Matplotlib)集成更容易。
?
Adapter接口定義了如下方法:
public abstract void registerDataSetObserver (DataSetObserver observer)
Adapter表示一個(gè)數(shù)據(jù)源,這個(gè)數(shù)據(jù)源是有可能發(fā)生變化的,比如增加了數(shù)據(jù)、刪除了數(shù)據(jù)、修改了數(shù)據(jù),當(dāng)數(shù)據(jù)發(fā)生變化的時(shí)候,它要通知相應(yīng)的AdapterView做出相應(yīng)的改變。為了實(shí)現(xiàn)這個(gè)功能,Adapter使用了觀察者模式,Adapter本身相當(dāng)于被觀察的對(duì)象,AdapterView相當(dāng)于觀察者,通過(guò)調(diào)用registerDataSetObserver方法,給Adapter注冊(cè)觀察者。
public abstract void unregisterDataSetObserver (DataSetObserver observer)
通過(guò)調(diào)用unregisterDataSetObserver方法,反注冊(cè)觀察者。
public abstract int getCount () 返回Adapter中數(shù)據(jù)的數(shù)量。
public abstract Object getItem (int position)
Adapter中的數(shù)據(jù)類似于數(shù)組,里面每一項(xiàng)就是對(duì)應(yīng)一條數(shù)據(jù),每條數(shù)據(jù)都有一個(gè)索引位置,即position,根據(jù)position可以獲取Adapter中對(duì)應(yīng)的數(shù)據(jù)項(xiàng)。
public abstract long getItemId (int position)
獲取指定position數(shù)據(jù)項(xiàng)的id,通常情況下會(huì)將position作為id。在Adapter中,相對(duì)來(lái)說(shuō),position使用比id使用頻率更高。
public abstract boolean hasStableIds ()
hasStableIds表示當(dāng)數(shù)據(jù)源發(fā)生了變化的時(shí)候,原有數(shù)據(jù)項(xiàng)的id會(huì)不會(huì)發(fā)生變化,如果返回true表示Id不變,返回false表示可能會(huì)變化。Android所提供的Adapter的子類(包括直接子類和間接子類)的hasStableIds方法都返回false。
public abstract View getView (int position, View convertView, ViewGroup parent)文章來(lái)源:http://www.zghlxwxcb.cn/news/detail-490927.html
getView是Adapter中一個(gè)很重要的方法,該方法會(huì)根據(jù)數(shù)據(jù)項(xiàng)的索引為AdapterView創(chuàng)建對(duì)應(yīng)的UI項(xiàng)。文章來(lái)源地址http://www.zghlxwxcb.cn/news/detail-490927.html
到了這里,關(guān)于工地臨邊防護(hù)缺失識(shí)別檢測(cè)算法 opencv的文章就介紹完了。如果您還想了解更多內(nèi)容,請(qǐng)?jiān)谟疑辖撬阉鱐OY模板網(wǎng)以前的文章或繼續(xù)瀏覽下面的相關(guān)文章,希望大家以后多多支持TOY模板網(wǎng)!