opencv 和 parfor
一次遇到兩個不熟悉的,因此在一起記一下。
OpenCV的全稱是:Open Source Computer Vision Library。
OpenCv是一個基于(開源)發行的跨平臺計算機視覺庫,可以運行在Linux,Windows和Mac OS操作系統上。它輕量級而且高效——由一系列C函數和少量C++類構成,同時提供了Python\Ruby\
MATLAB等語言的接口,實現了圖像處理和計算機視覺方面的很多通用算法。
OpenCV是一個用于圖像處理、分析、機器視覺方面的開源函數庫.
該庫的所有代碼都經過優化,計算效率很高,因為,它更專注于設計成為一種用于實時系統的開源庫。opencv采用C語言進行優化,而且,在多核機器上面,其運行速度會更快。它的一個目標是提供友好的機器視覺接口函數,從而使得復雜的機器視覺產品可以加速面世。該庫包含了橫跨工業產品檢測、醫學圖像處理、安防、用戶界面、攝像頭標定、三維成像、機器視覺等領域的超過500個接口函數。
同時,由于計算機視覺與機器學習密不可分,該庫也包含了比較常用的一些機器學習算法。或許,很多人知道,圖像識別、機器視覺在安防領域有所應用。但,很少有人知道,在航拍圖片、街道圖片(例如google street view)中,要嚴重依賴于機器視覺的攝像頭標定、圖像融合等技術。
近年來,在入侵檢測、特定目標跟蹤、目標檢測、人臉檢測、人臉識別、人臉跟蹤等領域,opencv可謂大顯身手,而這些,僅僅是其應用的冰山一角。
如今,來自世界各地的各大公司、科研機構的研究人員,共同維護支持著opencv的開源庫開發。這些公司和機構包括:微軟,IBM,索尼、西門子、google、intel、斯坦福、MIT、CMU、劍橋。。。。
以上轉自http://blog.csdn.net/carson2005/article/details/5822149
?
matlab并行之parafor
經常用matlab處理大型數據,有時某些數據處理起來可能要幾天甚至更久。如果算法已經到最優,那么提高速度的最后方法就是從硬件下手了。在這個什么都開始并行的年代,matlab也提供了并行計算的功能,甚至能用GPU加速。matlab貌似在2010a開始支持并行計算,引入了一個工具箱,叫做parallel computing toolbox.它的使用方法,可以從matlab的幫助獲得。
parfor 就是paralle+for,也就是并行的for循環,即,matlab會弄出幾個虛擬的小pc,一個算i=1:30部分循環,一個算i=50:80部分循環,再來一個算i=90:120部分循環,等。也就是matlab將一個大循環分成小塊,然后這些小塊并行計算,最后再合在一起。但是parfor的前提是:循環的每次迭代獨立,不相互依賴。如果下一次循環要依賴上一次循環的話,就不能使用parfor了。
關于提高的速度,用2核的話提高兩倍,用4核的話提高了6被。
如何聲明要開啟的核(通常來講就是你的PC有幾個核就聲明幾個)?
首先在matlab命令行里輸入: matlabpool open local 4
然后它會提示你一些消息,開啟成功后就像以前一樣操作就行。不想用了就再輸入matlabpool close,關閉并行。
這些內容也可以寫到函數里面去,比如
function yourFun()
....
matlabpool('open','local',4); %最后一個參數是你要開啟的線程數
parfor i=1:N
...
end
matlabpool close
....
end
如果你的parfor怎么都通不了,或者速度變得更慢了,建議看matlab 幫助中的這一部分,看明白了,自然就有答案了:
一個使用parfor-loop的例子:
%example of parfor-loop
%本地worker數通常等于cpu的核數
matlabpool open local 2;parfor i=1:1024A(i) = sin(i*2*pi/1024);endplot(A);matlabpool close;以上轉自 http://blog.csdn.net/yuzg86/article/details/7542056
?
轉載于:https://www.cnblogs.com/rong86/p/3800130.html
總結
以上是生活随笔為你收集整理的opencv 和 parfor的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 安卓注册手机短信验证码验证的案例-02
- 下一篇: MySQL建表语句综合