原创 C++ 如何正確高效地定義字符串常量

閱讀gtest.cc 代碼發現 字符串常量都定義成數組的形式,爲什麼不定義成指針呢? // A test filter that matches everything. static const char kUniversalFilte

原创 stl vector push_back解析

查看 Visual Studio 2013的stl vector代碼, 發現push_back要先判斷元素是否本來就在vector裏面,再分情況push_back. 粗看不解,以爲多此一舉,其實裏面暗藏玄機。 所以就搜索一下,發現了這個問

原创 優秀資料網站

機器學習,最大熵模型學習 https://shuwoom.com/?p=1168

原创 C++全局變量的初始化過程

全局變量在main()前完成初始化(調用構造函數) 在調用構造函數前,全局變量已分配空間,內存全0 多個全局變量的初始化,按照代碼編譯的順序 注意:全局變量被訪問前可能它還沒有調用構造函數初始化。 如果一個項目中,多個dll都用到一個全局

原创 LU分解 Ax=b, A=LU

LU分解 詳細算法: https://zhuanlan.zhihu.com/p/84210687 示例:https://www.geeksforgeeks.org/l-u-decomposition-system-linear-equat

原创 vcpkg VS2017的全局集成

vcpkg是微軟的開源工具包,可以很方便的下載第三方庫並集成到Visual Studio環境。 步驟 1.下載vcpkg      git clone https://github.com/microsoft/vcpkg 2.編譯   

原创 異構計算筆記

異構計算 視頻: Heterogeneous Programming in C++ today - Michael Wong [ACCU 2018] 筆記: 異構計算技術 OpenCL,CUDA, C++ AMP, OpenMP, Ope

原创 C++17 - The Best Features

youtube: C++17 - The Best Features - Nicolai Josuttis [ACCU 2018] 筆記: 在頭文件中定義靜態變量 inline static class TrackNew{ private

原创 變換矩陣推導 v=M1*v1=M1*(T21*v2)=M2*v2=>M2=M1*T21

世界座標系中的點v在 view1中的座標爲v1,在view2中的座標爲v2, view1變換矩陣爲M1(相對於單位座標系I), view2的變換矩陣M2 view2相對view1的變換矩陣T21. v=M1*v1=M2*v2 v1=T21

原创 VS2017 C++ filesystem

VS2017 C++ 還沒有正式支持filesystem,命名空間是std::experimental::filesystem。 一些常用的方法: #include <iostream> #include <filesystem> #i

原创 C++ initializer_list 高性能的stl 局部常量數組。

C++11引入了一個新的類模板 initializer_list。 它本質就是C 的局部常量數組的封裝,避免了使用因爲動態數組或vector而產生的在堆上分配、釋放內存的額外開銷,同時提供begin(),end(),size()的接口可以

原创 PCL點雲濾波去噪

爲什麼要對點雲濾波? 一般下面這幾種情況需要進行點雲濾波處理: (1)  點雲數據密度不規則需要平滑 (2) 因爲遮擋等問題造成離羣點需要去除 (3) 大量數據需要下采樣 (4) 噪聲數據需要去除      點雲中的噪聲點對後

原创 ICP算法的原理與實現

一、背景與意義  點雲數據能夠以較小的存儲成本獲得物體準確的拓撲結構和幾何結構,因而獲得越來越廣泛的關注。在實際的採集過程中,因爲被測物體尺寸過大,物體表面被遮擋或者三維掃描設備的掃描角度等因素,單次的掃描往往得不到物體完整的

原创 三維重建技術綜述

     三維重建技術通過深度數據獲取、預處理、點雲配準與融合、生成表面等過程,把真實場景刻畫成符合計算機邏輯表達的數學模型。這種模型可以對如文物保護、遊戲開發、建築設計、臨牀醫學等研究起到輔助的作用。      三維重建技術

原创 SIFT算法原理

SIFT算法 SIFT即尺度不變特徵變換,是用於圖像處理領域的一種描述。這種描述具有尺度不變性,可在圖像中檢測出關鍵點,是一種局部特徵描述子。 一、SIFT算法特點: 1、具有較好的穩定性和不變性,能夠適應旋轉、尺度縮放