基於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...