Time of Update: 2018-12-04
記得我在OpenCV學習筆記(四)——新版本的資料結構core裡面講過新版本的資料結構了,可是我再看這部分的時候,我發現我當時實在是看得太馬虎了。對於新版本的資料結構,我再說說。Point_類不用多言,裡面兩個成員變數x,y。Point_<int>就是Point2i,也是Point,Point_<float>就是Point2f,Point_<double>就是Point2d。Point3_類不太常用,跟Point_類差不太多,成員變數x,y,z。Size_類成
Time of Update: 2018-12-04
在本文的上篇中,大致介紹了一下字元集是個什麼東西,以及與漢字相關的幾個字元集的發展曆程,在接下來的這個部分裡,我計劃談一談上篇文末所提到的那兩個東西,一個是 UCS,一個是 UTF。需要提前說明的是,有關 Unicode 的資訊在網上的散布很零散,有的資訊被廣泛傳播但是已經過時,甚至有的文中都沒有表明該文撰寫的時間點,比較權威的資訊源,例如
Time of Update: 2018-12-04
音頻和視頻其實是一樣的,在檔案中尋找音頻流,然後解壓出來,得到音訊框架的資料,同樣也可以按照設定的編碼格式進行壓縮,我這裡把音訊解碼和編碼做成了兩個工程,也是直接上代碼:#include <stdio.h>#include <stdlib.h>extern "C"{#include <libavcodec\avcodec.h>#include <libavformat\avformat.h>#include
Time of Update: 2018-12-04
還是一個即時性要求的程式最近把我弄得有些上火。為了提高代碼啟動並執行速度,我也是又新啃東西學了。由於我代碼裡使用了vector,網上搜來搜去有人說vector慢,又有人說STL裡的sort排序速度是我等常人不能企及的,有人說要少resize,這個重新分配記憶體非常耗時,又有人說要用swap來徹底刪除不要的記憶體空間。帶著這麼多疑問,我實在不知道我程式慢的原因。於是乎閱讀了《Effective
Time of Update: 2018-12-04
年底了,事情比較多,大家也都是如此吧~~今天咱不談OpenCV了,也給大家輕鬆輕鬆。說一個我網上無意中遇到的軟體Voice Activated
Time of Update: 2018-12-04
編程珠璣第12章(取樣問題)學習筆記――2013.01.17(By:Neicole)零。大綱1. 問題描述2. 問題改進3. 第一種方案――使用機率計算4. 第二種方案――逐個隨機插入5. 第三種方案――內部亂序抽取6. 我的收益 一。問題描述 1. 名稱:隨機取樣任務 2. 輸入:選區名列表,整數m 3. 輸出:隨機播放的m個選區名列表 PS: 1. 選區名常有幾百個; 2.選區名為不超過12字元的字串; 3. m常在20~40 二。問題改進PS: 程式最終結果用上的輸入資料只是部分(樣品),
Time of Update: 2018-12-04
讀完《說服力》一書後,第一感覺:果然不負“經典”一詞,可教會我們在生活中一般是怎麼決策的,我們可以如何去做,達到說服的效果。本書目錄沒有將每章要點列出,而是用很有吸引力的疑問作為章節題目,為了自己方便回顧,現將每章要點用幾個字概括出來。 第01章:怎樣通過為觀眾製造不便來提高說服力?概括:從眾心理摘錄:當人們對一件事抱不確定態度時,他們傾向於觀察周圍人的做法,以指導自己的行為。 第 02章:如何將從眾效應轉化為說服力?概括:找“與眾相同”之處摘錄:舉薦人與目標人物相似之處越多,達到的說服效果
Time of Update: 2018-12-04
久遠之前安裝的 Cygwin,被閑置了一段時間,昨天要用卻發現不幹活了。具體的表現在於,進入命令列下,綠色顯示的使用者名稱提示符看不到,執行任何命令都說找不到。感覺和環境變數有關係,在系統的命令提示字元下看 set 的輸出,沒有找到可疑線索。 求教於三火兄,三火兄第一時間告訴我說確實和環境變數有關,不過是在註冊表裡,但具體路徑不記得了。於是用“Cygwin 註冊表”做關鍵字搜尋,找到了註冊表路徑是:HKEY_LOCAL_MACHINE/SOFTWARE/Cygnus
Time of Update: 2018-12-04
7 月 6 日,RIM 在北京千禧大酒店舉行了一次開發人員大會。到場的大概有三四百人,其中部分來自於其他城市,好像還有從國外趕來的。會上,RIM 列舉了 BlackBerry 10 的三大理念:Flow、Connect、Extend。在播放的幾段視頻中對這些理念也作了相關的展示。令我印象深刻的是其嶄新的時間軸拍照模式,這一亮點用最通俗的語言來形容,那就是很有“蘋果範”兒,非常值得期待。視頻中的另一個重點是IME,但由於並非中文IME,所以我並不感興趣。從技術的角度來講,BB10
Time of Update: 2018-12-04
昨天,同事突然來找我,說是編譯出來的程式,在 S60 第五版的模擬器上有問題,只能在第一次的時候順利開啟,退出再次進入,則失敗。表現的現象有兩種,如果是用滑鼠在功能表中點擊進入,則沒有任何提示,如果是用鍵盤上下鍵定位元影像標然後斷行符號,則會報“功能表:系統錯誤(-1)”。 該同事素日也是以技術過硬著稱的,這次也事先做了不少測試,告訴我一個聽起來莫名其妙的規律:mmp 檔案中有兩個 cpp,注釋掉就正常,放開就出問題,神奇的地方在於,這兩個
Time of Update: 2018-12-04
在 C 語言中,我們最熟悉的函數熱門排行榜上,malloc 和 free 想必名列前茅,而 realloc 則可能就要靠後了。不過你知道嗎,有了 realloc 函數,你甚至可以不使用 malloc 或者 free,而是由它一力承擔。該函數的原型如下:void* realloc(void* ptr, size_t size);其本職工作,乃是在 ptr 參數所指向的記憶體塊出現容量不足時進行重新分配,並保證其中內容不變。不過,函數的規範指出,ptr 參數可以為
Time of Update: 2018-12-04
距離2.4.0放出來才一個月。兒童節當天2.4.1就出爐了。。。。真心跟不上節奏啊,路漫漫其修遠兮。。。。這次主要的改變還是bug的修訂,之前有朋友告訴我,說他的2.3.1版本說什麼都不能成功配置CUDA,後來他用2.2版本就成功了,看來新出的版本bug還是很多的,也不能盲目求新。這次的2.4.1版本更新如下:GPU模組支援了CUDA4.1、CUDA4.2版本,添加了一個檔案字串儲存回讀的API介面完善了光流法的clacOpticalFlowPyrLK,支援了金字塔映像作為輸入完善了文檔,使文檔
Time of Update: 2018-12-04
之前介紹了Qt+OpenCV的圖形介面設計http://blog.csdn.net/yang_xian521/article/details/6968012,那篇裡面只是讀取了圖片,這次再略進一步,再實現一個網路攝影機視頻的讀取。再介紹一下我的開發環境Qt4.7.4+OpenCV2.3.1+VS2008,其實很簡單,先在自己的QMainWindow子類裡面聲明如下變數:public:camCapture(QWidget *parent = 0, Qt::WFlags flags =
Time of Update: 2018-12-04
好久沒更新blog了,最近一直在看ffmpeg方面的資料,也是應急,學的也是皮毛。我只是把我學習的一些彎路跟大家分享一下,希望能對大家有些許協助,如果哪裡說的不對,還請大神指點啊。首先,當然還是開發工具的選擇,我去ffmpeg的官網看了一下,嚇死人,竟然都更新到0.11.1,真是版本更新的快啊,我看網上廣泛使用的都是6.0以下的版本,即使我們最愛的OpenCV也是用FFmpeg0.7.x進行的開發。於是去http://ffmpeg.org/看了一下。n多的下載連結讓我淩亂了,下載下來也發現是n多
Time of Update: 2018-12-04
前幾節都是根據作者的程式流程一步步介紹作者的工作,感覺只是對代碼的一個注釋,這次換一個思路,一部分一部分啃,作者的工作主要就是3部分麼,tracking,learning,detection。這次先介紹Tracking的工作。對於Tracking,作者主要使用的是他提出的Forward-Backward Error的辦法,使用Lucas-Kanade光流法跟蹤,對跟蹤的結果,用Forward-Backward Error做反饋,求FB
Time of Update: 2018-12-04
上一篇已經寫了如何配置好開發環境,這次就先小試牛刀,來個視頻的編碼。搞視頻處理的朋友肯定比較熟悉YUV視頻序列,很多測試庫提供的視頻資料都是YUV視頻序列,我們這裡就用用YUV視頻序列來做視頻。關於YUV視頻序列,我就不多講了,可以看書學習,通常的視頻序列都是YUV420格式的。步驟也就那幾步,添加視頻流,開啟編碼器,開闢相應的記憶體空間,然後就可以開啟YUV序列逐幀寫入資料了,so easy!記得最後要做好檔案的關閉和記憶體的釋放,因為FFmpeg是c風格的(不知道新版本是否是c++風格的),
Time of Update: 2018-12-04
如果你想在OpenCV的基礎上自己開發一些演算法,我覺得core這部分內容不得不精啊,能熟練使用OpenCV的資料結構是開發的基礎,又是重中之重。最近就又拌在這上頭了,所以再重溫一下。這次分析一下Utility and System Functions and Macros這部分,就是實用函數、系統函數和宏。OpenCV在這部分裡包含一些類似標準c++、c裡面的一些東西。系統函數有很多。有些是記憶體方面的操作,類似new
Time of Update: 2018-12-04
上一篇介紹了視頻編碼的小例子,視頻解碼跟編碼差不多,只是要在視頻檔案中尋找視頻流,找到後對流逐幀解碼,就這樣簡單。閑言少敘,上code:int main(int argc, char *argv[]){AVFormatContext *pFormatCtx;int i, videoStream;AVCodecContext *pCodecCtx;AVCodec *pCodec;AVFrame *pFrame; AVFrame
Time of Update: 2018-12-04
最近做一個東西,需要即時顯示,於是想在螢幕顯示FPS。FPS是Frame Per Second的縮寫,中文意思是每秒畫面格數,即幀速。FPS是測量用於儲存、顯示動態視頻的資訊數量。通俗來講就是指動畫或視頻的畫面數。這就需要我在系統函數一講裡提到的getTickCount、getTickFrequency這兩個函數了。前一個函數返回tick次數,後一個函數返回每秒tick次數,它們的比就是時間咯。如果想得到一段程式的已耗用時間,可以套用下面的例子:double t =
Time of Update: 2018-12-04
在上一講OpenCV學習筆記(四十二)——Mat資料操作之普通青年、文藝青年、暴力青年裡,對Mat內資料的各種讀寫操作進行了速度的比較,都是我自己想到的方法,感覺不夠系統,這次整理了下思路,參考了文獻,把能想到的方法進行了匯總,希望能對大家有所協助。1.存取單個像素值最通常的方法就是img.at<uchar>(i,j) = 255;img.at<Vec3b>(i,j)[0] = 255;如果你覺得at操作顯得太笨重了,不想用Mat這個類,也可以考慮使用輕量級的Mat_類,