透視變換基於C ,用ORB

2021-10-10 14:37:07 字數 1121 閱讀 5033

基於orb的方法

//特徵匹配的函式需要包含contirbe

#include

#include "opencv2/features2d.hpp"

using namespace std;

using namespace cv;

const int max_features = 500; //控制最多可以檢測到的特徵點對數

const float good_match_percent = 0.15f;

void alignimages(mat& im1, mat& im2, mat& im1reg, mat& h)

// find homography //尋找透視變換矩陣

h = findhomography(points1, points2, ransac)

; // use homography to warp image //透視變換

warpperspective(im1, im1reg, h, im2.size());

}int main(int argc, char** ar**)

在工程裡面放上待矯正的圖,模板圖

模板圖:

待矯正的圖:

結果:匹配圖:

最終結果:

總結:1,缺點,如果待矯正的圖背景和模板圖里的特徵很相似,會導致特徵點匹配錯誤,從而導致有誤差。

2,優點,克服了傳統的方法中,無法很準確的檢測出四條邊的四個頂點座標的缺點。

OpenCV實現點對點的透視變換(C )

從一幅圖到透視變換之後的圖,如何得到原圖中的點在目標圖中的位置呢?用到透視變換到目標圖之後得到的透視變換矩陣,同時單獨對點座標進行透視變換矩陣的操作。透視變換的基本操作其實挺簡單,參考我以前的文章 opencv4.1.0透視變換的基本操作 lankybin的部落格 csdn部落格 簡單示例 從原圖中...

用C 實現基於用C 實現基於TCP協議的網路通訊

tcp 協議是乙個基本的網路 協議,基本上所有的網路服務都是基於 tcp協議的,如http,ftp等等,所以要了解網路程式設計就必須了解基於 tcp協議的程式設計。然而 tcp協議是乙個龐雜的體系,要徹底的弄清楚它的實現不是一天兩天的功夫,所幸的是在.net framework環境下,我們不必要去追...

用 C 做人臉檢測(基於EmguCV)

封面為野比原創,請勿未經允許私自引用 準備工作 必須 傻瓜安裝後,把 bin 目錄新增到環境變數裡去,比如安裝在 x emgucv 目錄下,就在命令列輸入這句話。1 path x emgucv bin path csharp view plain copy print?opencv 的全稱是 ope...