原创 Linux 串口驅動 問題

CH340芯片驅動 問題1:Ubuntu 顯示串口/dev/ttyUSB0 正常,程序open failed 解決: 增加權限 sudo ./executable 根本辦法:在 /etc/udev/rules.d 目錄下,增加一個20-u

原创 ORB_SLAM2源碼小記0

ORB_SLAM源碼小記 參考ORB_SLAM Paper 基本思路 ORB_SLAM:概括爲基於稀疏特徵點的間接法 **ORB_SLAM基本由三個線程實現, 1. Tracking,負責估計每幀的相機位姿,判斷關鍵幀; 2. Ma

原创 鏈表的常見操作

首先看代碼 #include <random> #include <ctime> #include <iostream> #include <map> #include <unordered_map> #include <set> te

原创 Linux 常用命令備忘

0 權限 $sudo -i #獲取root $sudo chmod +x <腳本> #使腳本獲得執行權限 $sudo chmod 777 <文件> #最高權限 1 查看設備 $lsusb #查看usb $dmesg #查看狀態 $depm

原创 讀代碼學習方法 Code Reading

讀優秀的開源代碼助於提升coding能力 參考Code Reading 掌握數據結構與算法 visualgo 精通編程語言,C&C++ C++ 熟悉UML 利用工具,熟悉正則表達式,Linux命令 find find <path

原创 C++ 線程編程

函數thread thread* t = new thread(<fun>,<parameter>); mutex #include <iostream> #include <mutex> #include <thread> #inclu

原创 C++ 智能指針

C++ 智能指針 0. Don’t not use new and delete directly If you use new and delete to manage heap memory directly, there is a

原创 算法小記——實現數學計算Math

常見Math運算的實現 1. 不用+實現加法 *思路:將數轉爲二進制,進行加法,發現分爲兩步,相加(不進位,用異或^)與進位(用相與&) int Add(int a, int b) { int sum = 0; int a

原创 牛頓法與擬牛頓法

牛頓法 牛頓法求算術平方根 float SqrtNewton(float x) { float x0 = x + 0.25, x1; for (;;) { x1 = (x0 * x0 + x) /

原创 OpenMVG源碼筆記

數據結構 landmark 點雲與相關特徵點 template<typename Key, typename Value> using Hash_Map = std::unordered_map<Key, Value>; using I

原创 最短路徑算法——Floyd算法

Floyd算法 數據結構圖論的最短路徑算法經典的有三種: * Floyd Warshall算法 * Dijkstra算法 * Bellman-Ford 算法 Floyd 算法 Floyd算法可計算任意結點到所有結點的最短路徑,其時間

原创 圖的最小生成樹 VS 最短路徑

圖的應用問題 note 僅作入門參考的記錄 1. 網絡架設之路徑最短問題 參考給出了兩個算法:Prim 算法和Kruskal算法,前者針對鄰接矩陣,後者針對邊集數組。 2. 旅行最短路徑 最小生成樹 Dijkstra算法 每一步算出到

原创 數據結構之哈希表

哈希表用於查找的數據結構 Note: 一般的數據查找是間接的檢查每個內存地址上的數據與關鍵字是否匹配,哈希函數則將數據在內存的地址直接由數據映射,通過關鍵字直接確定數據地址,即查找。

原创 使用markdown

markdown的常用語法 n級標題 “##title” 代碼塊 3個“`” 插圖與超鏈接

原创 opencv Mat 數據結構與使用技巧

OPENCV 中CvMat是結構體,Mat是類。 CvMat中有一個union叫data, 即常要操作的矩陣元素,有ptr (unsigned),s(signed), f(float), dl(double)等, eg, https://