原创 2to3將python2文件轉換成python3

首先,安裝2to3 sudo apt install 2to3 按文件夾批量轉換: 2to3 --output-dir=PYTHON3_DIR -W -n PYTHON2_DIR 單文件轉換,-w寫回原文件 2to3 -w

原创 knnMatch使用報錯“ValueError: not enough values to unpack (expected 2, got 0)”

# BFMatcher with default params bf = cv2.BFMatcher() matches = bf.knnMatch(des1,des2, k=2) # Apply ratio test good

原创 package ORB_SLAM-master depends on non-existent package opencv2 ...

解決方法: 將manifest.xml中的 <depend package="opencv2"/>註釋掉

原创 編譯DBoW2出現:fatal error: opencv/cv.h: 沒有那個文件或目錄 錯誤

解決方法: 將各文件中的 #include <opencv/cv.h>替換爲 #include <opencv2/opencv.hpp>即可 另外,ORB SLAM要求OpenCV 3.0,noetic自帶的是opencv4,編譯

原创 python Thread 實現多線程的一個例子

下面是一個使用python Thread 實現多線程的例子,圖像的獲取和特徵點提取是獨立的線程。 import cv2 from threading import Thread import copy import numpy a

原创 python Enum的使用

Enum是枚舉類,用法如下: from enum import Enum class Calendar: Month = Enum('Calendar.Month', ('Jan', 'Feb', 'Mar', 'Apr',

原创 numpy拼接數組

經常用到需要擴展的數組,一般用list不斷地append。但是,這樣有時候就免不了將list轉化成ndarray的麻煩。查了一下,numpy也有數組拼接的函數,比如append、concatenate、vstack等。 嘗試了一下

原创 QuadricSLAM

QuadricSLAM是object SLAM的一種解決方案,可以提升定位的魯棒性。物體的三維表示可以是CAD模型、點雲模型、矩形包圍盒、二次曲面等。QuadricSLAM使用的是二次曲面中的橢球面。 橢球面的定義是: XTQX

原创 Eigen 的cwiseAbs2用法

cwiseAbs2()是求元素的平方。 在numpy中對應np.power(m,2)

原创 SSIM損失

通常在計算兩幅圖像的差異時,使用MSE損失容易受到光照的干擾。相比之下,2004年提出的SSIM損失具有更好的性能,提升了訓練效果。 對於兩幅圖像xxx、yyy,SSIM的定義如下: SSIM(x,y)=l(x,y)⋅c(x,y)

原创 opencv中檢測到的角點與計算的描述子數量不一致

在opencv中獲取圖像特徵子需要先通過FeatureDetector::detect檢測角點,再通過DescriptorExtractor::compute計算描述子,但是返回的特徵子數量一般要少於檢測到的角點數。這是因爲剔除了

原创 numpy multi_dot的用法

multi_dot可以用於多個矩陣的乘法,而且會根據最少的計算量進行優化。 矩陣相乘的計算量示例:A(10,100) B(100,5)C(5,50) cost((AB)C) = 10x100x5 + 10x5x50 = 500

原创 LM、GN算法

2、 高斯-牛頓算法 將進行一階展開爲:。 目標函數可轉化爲  上式對求導得: 簡化爲,即爲高斯-牛頓算法的更新方程 3、GN與LM的區別 LM會拒絕可能導致更大的殘差平方和的更新,速度也可能會慢些,而使用GN必須保證H的可逆性。  

原创 數據增強 python隨機交換圖像通道

import numpy as np from itertools import permutations indices = list(permutations(range(3), 3)) image = np.random.

原创 python defaultdict用法

在使用dict()類型時,如果訪問不存在的key時,會返回keyError。但有時候希望它能夠返回一個默認值,這裏就可以使用defaultdict。 用法如下: from collections import defaultdic