Time of Update: 2018-12-03
前言:在前面一篇文章中,我們在反轉長度不等的兩塊連續記憶體塊的演算法的基礎上推匯出了反轉長度不等的兩塊不連續記憶體塊的演算法。在本文中,我將使用前文分析的演算法去解決一個更複雜的問題:反轉字串中的單詞。引子話說有這樣一道演算法題:PROBLEM:Reverse WordsCOMMENT:Write a function that reverses the order of the words in a string.For instance,your function should
Time of Update: 2018-12-03
1. 什麼是模板匹配?模板匹配是一種用於在源映像S中尋找定位給定靶心圖表像T(即模板映像)的技術。其原理很簡單,就是通過一些相似性準則來衡量兩個映像塊之間的相似性Similarity(S,T)。2. 用途模板匹配方法常用於一些平面影像處理中,例如印刷中的數字、工業零器件等小尺寸靶心圖表像識別分類。3.
Time of Update: 2018-12-03
OpenCV的feature2d module中提供了從局部映像特徵(Local image feature)的檢測、特徵向量(feature vector)的提取,到特徵匹配的實現。其中的局部映像特徵包括了常用的幾種局部映像特徵檢測與描述運算元,如FAST、SURF、SIFT、以及ORB。對於高維特徵向量之間的匹配,OpenCV主要有兩種方式:1)BruteForce窮舉法;2)FLANN近似K近鄰演算法(包含了多種高維特徵向量匹配的演算法,例如隨機森林等)。feature2d module:
Time of Update: 2018-12-03
1.原理在瞭解了MeanShift演算法以後,我們將MeanShift演算法擴充到連續映像序列(一般都是指視頻映像序列),這樣就形成了CamShift演算法。CamShift演算法的全稱是"Continuously Apaptive Mean-SHIFT",它的基本思想是視頻映像的所有幀作MeanShift運算,並將上一幀的結果(即Search Window的中心和大小)作為下一幀MeanShift演算法的Search
Time of Update: 2018-12-03
前面提到,非參數估計和參數估計(即,監督參數估計和非監督參數估計)共同構成了機率密度估計方法。非參數估計也有人將其稱之為無參密度估計,它是一種對先驗知識要求最少,完全依靠訓練資料進行估計,而且可以用於任意形狀密度估計的方法。常見的非參數估計方法有以下幾種:度曲線的光滑程度,k越大越光滑。
Time of Update: 2018-12-03
CVonlinehttp://homepages.inf.ed.ac.uk/rbf/CVonlinehttp://homepages.inf.ed.ac.uk/rbf/CVonline/unfolded.htmhttp://homepages.inf.ed.ac.uk/rbf/CVonline/CVentry.htm 李子青的大作:Markov Random Field Modeling in Computer Visionhttp://www.cbsr.ia.ac.cn/users/szli/
Time of Update: 2018-12-03
我使用了手寫數字資料庫MNIST的一個子集,並做了多種處理程式中附有資料庫,完整的資料庫在這兒下載,程式在這兒下載 實現的演算法有:模板匹配類中心歐式距離貝葉斯分類演算法夾角餘弦距離獎懲演算法增量校正演算法LMSE演算法 特徵提取方法:映像分割為若干小塊,計算筆畫像素佔小塊總像素數的比例每一個演算法都在獨立的cpp檔案中,我直接使用來源資料庫而未作處理,最初使用映像的5x5分割,為了提高精度,後來又使用7x7分割,下載程式中已經有這兩種分割的特徵資料 主程式使用函數指標調用測試各個演算法的實現,
Time of Update: 2018-12-03
這裡來到了CamShift演算法,OpenCV實現的第二部分,這一次重點討論Mean Shift演算法。在討論Mean Shift演算法之前,首先討論在2D機率分布圖像中,如何計算某個地區的重心(Mass Center)的問題,重心可以通過以下公式來計算:1.計算地區內0階矩for(int i=0;i<height;i++) for(int j=0;j<width;j++) M00+=I(i,j)2.地區內1階矩:for(int i=0;i<height;i++)
Time of Update: 2018-12-03
使用OPENCV訓練手寫數字識別分類器 1,下載訓練資料和測試資料檔案,這裡用的是MNIST手寫數字圖片庫,其中訓練資料庫中為60000個,測試資料庫中為10000個2,建立訓練資料和測試資料檔案讀取函數,注意位元組順序為大端3,確定字元特徵方式為最簡單的8×8網格內的字元點數4,建立SVM,訓練並讀取,結果如下 1000個訓練樣本,測試資料正確率80.21%(並沒有體現SVM小樣本高準確率的特性啊) 10000個訓練樣本,測試資料正確率95.45% 60000個訓練樣本,測試資料正確率97
Time of Update: 2018-12-03
meanShift,均值漂移,在聚類、映像平滑、分割、跟蹤等方面有著廣泛的應用。meanShift這個概念最早是由Fukunage在1975年提出的,其最初的含義正如其名:位移的均值向量;但隨著理論的發展,meanShift的含義已經發生了很多變化。如今,我們說的meanShift演算法,一般是指一個迭代的步驟,即先算出當前點的位移均值,然後以此為新的起始點,繼續移動,直到滿足一定的結束條件。在很長一段時間內,meanShift演算法都沒有得到足夠的重視,直到1995年另一篇重要論文的發表。該論
Time of Update: 2018-12-03
轉自:http://hi.baidu.com/0xeb/blog/item/6cbff9f88a8aff5f242df23c.html -最佳化- /O1 最小化空間 minimize space /Op[-] 改善浮點數一致性 improve floating-pt consistency /O2 最大化速度 maximize speed /Os 優選代碼空間 favor code space /Oa 假設沒有別名 assume no aliasing /Ot 優選代碼速度
Time of Update: 2018-12-03
CamShift演算法,即"Continuously Apative Mean-Shift"演算法,是一種動作追蹤演算法。它主要通過視頻映像中運動物體的顏色資訊來達到跟蹤的目的。我把這個演算法分解成三個部分,便於理解:1) Back Projection計算2) Mean Shift演算法3) CamShift演算法在這裡主要討論Back Projection,在隨後的文章中繼續討論後面兩個演算法。Back Projection計算Back Projection的步驟是這樣的:1.
Time of Update: 2018-12-03
在對映像進行處理過程中,我們經常需要對映像的某個或多個感興趣地區進行處理。在OpenCV中我們能夠非常方便地擷取指定ROI地區的子映像。下面這段代碼就示範了怎樣擷取指定單個ROI或多個ROI映像地區。// 複製一個或多個ROI映像地區// Author: www.icvpr.com // Blog: http://blog.csdn.net/icvpr #include <iostream>#include <vector>#include
Time of Update: 2018-12-03
google了一下沒找到像樣的(實現太複雜,太低效),自己寫一個發出來。以後還是要多貼些東西吧,不然部落格很空! 下面的如果有可以改進的地方,表忘了告訴我。自底向上的歸併排序,舉個例子吧還是:現在要把下面的數組按遞增順序排列9 8 7 6 5 4 3 2 1 step1:(len=1) 8 9 6 7 4 5 2 3 1step2:(len=2) 6 7 8 9 2 3 4 5 1step3:(len=4) 2 3 4 5 6 7 8 9
Time of Update: 2018-12-03
最近要做映像特徵提取,可能要用下HOG特徵,所以研究了下OpenCV的HOG描述子。OpenCV中的HOG特徵提取功能使用了HOGDescriptor這個類來進行封裝,其中也有現成的行人檢測的介面。然而,無論是OpenCV官方說明文檔還是各個中英文網站目前都沒有這個類的使用說明,所以在這裡把研究的部分心得分享一下。 首先我們進入HOGDescriptor所在的標頭檔,看看它的建構函式需要哪些參數。 CV_WRAP HOGDescriptor() : winSize(
Time of Update: 2018-12-03
meanShift演算法用於視頻目標跟蹤時,採用目標的顏色長條圖作為搜尋特徵,通過不斷迭代meanShift向量使得演算法收斂於目標的真實位置,從而達到跟蹤的目的。傳統的meanShift演算法在跟蹤中有幾個優勢:(1)演算法計算量不大,在目的地區域已知的情況下完全可以做到即時跟蹤;(2)採用核函數長條圖模型,對邊緣遮擋、目標旋轉、變形和背景運動不敏感。同時,meanShift演算法也存在著以下一些缺點:(1)缺乏必要的模板更新;(2)跟蹤過程中由於視窗寬度大小保持不變,當目尺規度有所變化時,
Time of Update: 2018-12-03
關於OpenCV在VS IDE下的安裝和配置,一些熱心的網友已經分享了它們的成功經驗,這裡有一篇很好的文章。這裡我無意重複這些內容,我想強調的是,在配置OpenCV開發環境的時候,除了滿足能夠正常工作外,我們還可以從移植和維護的角度多考慮一下。我們可能需要注意以下幾個方面的問題: 1.
Time of Update: 2018-12-03
% author: zhangduokun% 2012-12-18clc;clear;clear all;close all;I = imread('house.png');y = im2double(I);randn('seed', 0);sigma = 10;z = y + (sigma/255)*randn(size(I));% Denoise 'z'. The denoised image is 'y_est', and 'NA = 1' because% the true
Time of Update: 2018-12-03
很多來自網路觀點,覺得有道理,就抄過來了,原創說不上吧1. Qt官方編譯版本大其中有超過4萬多個檔案,很多情況下並不需要查看那麼多原始碼 2. Qt dll太大動輒幾個M,怎麼發布程式。如果僅是簡單程式或者不考慮跨平台,完全不需要用Qt這種各方面都很完善的超大型類庫,純C或者VC6的MFC/WTL完全勝任,編譯出來的檔案也小,Windows系統還都能運行 3.Qt有前途嗎賣來賣去,變來變去,國內用的公司也少,確實讓人懷疑。不過考慮到已經有那麼多成功的應用案例,是否可以期待一下。另外,Maya20
Time of Update: 2018-12-03
3D印表機出現在上世紀90年代中期,實際上是利用光固化和紙層疊等技術的快速成型裝置。它與普通印表機工作原理基本相同,印表機內裝有液體或粉末等“列印材料”,與電腦串連後,通過電腦控制把“列印材料”一層層疊加起來,最終把電腦上的藍圖變成實物。其實這個想法,在很久很久以前我就想過,並不是從3D印表機聯想到的,不過3D印表機可以看成是我想法的最初模型。覺得有意思所以貼出來,可能大家有一樣的想法,若有雷同純屬潛意識交流。假設電腦,通過串連一種掃描裝置擷取任何一種事物的內部結構,成分,和被掃描時的一切狀態,