原创 3D論文閱讀之AlignNet-3D

引言        Align(register) point clouds 即對齊(配準)點雲,意思是將一個點雲匹配到另一個點雲上面,主要用來將從一個物體的不同角度得到的局部點雲拼接起來,由此得到一個完整的3D模型,對點雲做Alignm

原创 C++11新特性

 nullptr http://www.cplusplus.com/reference/cstddef/nullptr_t/ https://en.cppreference.com/w/cpp/language/nullptr list

原创 C++對象模型、多態以及單一繼承下的運行內存分析

引言 對中高級程序員來說,C++內存模型是C++知識點裏比較重要的一部分,對此瞭解之後便可對C++類的實現機制以及多態性有更多的理解,尤其是C++運行過程中各個對象在內存裏的分佈情況,以下對這些知識點做簡要介紹。 C++類的構成: C++

原创 設計模式之Composite模式

適用場景         Composite模式適用於可以自包含的情況,比如說一個文件夾包含多個子文件夾,每個子文件夾又可以包含多個子文件夾。類似的問題還有:一個圓可以包含許多小圓,每一個小圓內部又可以包含多個圓。 模式介紹       

原创 基於Dlib進行人臉特徵點批量標註

程序功能:遍歷傳入文件夾下的所有Png格式圖片並對圖片的人臉進行標註。 標註結果:每個圖片會生成一個xml文件,裏面包含68個關鍵點的信息,如下所示, 開發環境:Win10&VS2015 使用開源庫: C++ XML parser :

原创 設計模式之觀察者模式

引言        鬆耦合設計是指對象之間較爲獨立,可以交互,但是不清楚彼此的細節,與之等效的說法是高內聚低耦合,對象與對象之間的互相依賴性很低,這樣可以使構建的OO系統更有彈性,因此使系統更能適應變化。 觀察者模式         觀察

原创 Tinyply讀取ply文件並顯示點雲

Introduction        本篇文章主要介紹了使用Tinyply讀取點雲並顯示,其中也包含了ply文件的簡單介紹,讀取ply文件的兩種方式及其優缺點,以及顯示點雲部分。 PLY文件簡介        PLY爲Polygon F

原创 Qt小技巧之重寫點擊最大化按鈕時響應

 引言        使用QT進行顯示圖片的時候,點擊自帶最大化按鈕就可將主窗口調整到所使用的電腦屏幕分辨率的大小,但是如果剛啓動時顯示的圖片在確定比例下顯示正常,而這個比例如果和屏幕寬高比不一致,那麼整個窗口放大後圖片就會左右或上下被拉

原创 PCL中RANSAC模型的使用

RANSAC算法是什麼         RANSAC算法於1981年由Fischler和Bolles提出,全程是RANdom SAmple Consensus,一般中文翻譯爲“隨機抽樣一致性算法”,它是一個迭代算法,主要用於從包含外點(o

原创 PCL中使用KdTree在點雲中進行K近鄰及半徑查詢

KdTree背景知識        KdTree(也稱k-d樹)是一種用來分割k維數據空間的高維空間索引結構,其本質就是一個帶約束的二叉搜索樹,基於KdTree的近似查詢的算法可以快速而準確地找到查詢點的近鄰,經常應用於特徵點匹配中的相似

原创 PCL中點雲濾波器的使用(Filtering In PCL)

1 開發環境配置 (1) VS2015 & PCL1.8.1 (2) 配置PCL頭文件及庫目錄 Include: $(PCL_ROOT); $(PCL_ROOT)\include\pcl-1.8; $(PCL_ROOT)\3rdPart

原创 Qt中Excel的使用

QtXlsx並不存在在安裝好的Qt裏面,如果要使用,必須要自己下載QtXlsx的源代碼加入自己的工程裏面 準備工作:     QtXlsx下載地址:https://github.com/QtExcel/QXlsx 或者 https://g

原创 PCL如何使用ICP(iterative closest point)算法

ICP介紹 假如一個點雲只是另一個點雲的剛性變換的話,可以通過不斷縮小兩個點雲點之間的距離得到兩個點雲之間的剛性變換矩陣,從而使兩個點雲可以完全拼接在一起,而這種迭代最近點的算法就是ICP. Why ICP 算法? ICP主要用在2D重建

原创 Cplusplus遍歷文件夾及子文件夾得到文件夾下某一後綴的所有文件

使用Dlib進行人臉標註時需要遍歷所有的png格式的文件,可使用以下代碼獲取: int getAllFiles(string path, vector<string>& files) { intptr_t hFile = 0;

原创 Open CV 逆時針,順時針旋轉90度

1. 讀取圖片: cv::Mat tmpImage = cv::imread(“imgPath”);   2. 逆時針旋轉90度,保存:             transpose(tmpImage, tmpImage);