opencv實(shí)現(xiàn)棋盤格檢測(cè)
更新時(shí)間:2022年08月01日 14:19:46 作者:老王隔壁的禿頭大寶貝
這篇文章主要為大家詳細(xì)介紹了opencv實(shí)現(xiàn)棋盤格檢測(cè),文中示例代碼介紹的非常詳細(xì),具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下
本文實(shí)例為大家分享了opencv實(shí)現(xiàn)棋盤格檢測(cè)的具體代碼,供大家參考,具體內(nèi)容如下
代碼:
#include <iostream>
#include <vector>
#include <opencv2/opencv.hpp> ?
#include <opencv2/xfeatures2d.hpp>
#include <opencv2/optflow/motempl.hpp>
using namespace cv; ?
using namespace std;
/*
棋盤格角點(diǎn)檢測(cè)應(yīng)用
*/
?
int main()
{
?? ?//*********************************** ?1 ?****************************************************************
?? ?/*Mat img = imread("C:\\Users\\H\\Desktop\\13.png", IMREAD_GRAYSCALE);
?? ?vector<Point2f> corner;
?? ?bool result = findChessboardCorners(img, Size(5, 7), corner, CALIB_CB_ADAPTIVE_THRESH | CALIB_CB_NORMALIZE_IMAGE);
?? ?cornerSubPix(img, corner, Size(11, 11), Size(-1, -1), TermCriteria(TermCriteria::EPS | TermCriteria::MAX_ITER, 20, 0.03));
?? ?drawChessboardCorners(img, Size(5, 7), corner, result);
?? ?imshow("src", img);*/
?? ?//**********************************************************************************************************
?
?
?? ?// ********************************** ?2 ?**************************************************
?? ?//讀入圖像
?? ?Mat src = imread("C:\\Users\\H\\Desktop\\13.png", IMREAD_COLOR);
?? ?Mat image_gray;
?? ?cvtColor(src, image_gray, COLOR_BGR2GRAY);
?? ?//定義存儲(chǔ)角點(diǎn)的容器
?? ?vector<Point2f> corners;
?? ?//進(jìn)行角點(diǎn)檢測(cè)
?? ?bool ret = findChessboardCorners(image_gray,
?? ??? ??? ??? ??? ??? ??? ??? ??? ??? ?Size(5, 7), // 棋盤格每列點(diǎn)數(shù)和每一行點(diǎn)數(shù)
?? ??? ??? ??? ??? ??? ??? ??? ??? ??? ?corners, ? ?// 輸出檢測(cè)到角點(diǎn)的數(shù)組
?? ??? ??? ??? ??? ??? ??? ??? ??? ??? ?CALIB_CB_ADAPTIVE_THRESH |
?? ??? ??? ??? ??? ??? ??? ??? ??? ??? ?CALIB_CB_NORMALIZE_IMAGE);
?
?? ?//指定亞像素計(jì)算迭代標(biāo)注
?? ?TermCriteria criteria = TermCriteria(TermCriteria::MAX_ITER + TermCriteria::EPS,
?? ??? ??? ??? ??? ??? ??? ??? ??? ??? ?40, ? // 要計(jì)算的最大迭代次數(shù)或元素?cái)?shù)
?? ??? ??? ??? ??? ??? ??? ??? ??? ??? ?0.1); // 迭代算法停止時(shí)所需的精度或參數(shù)變化
?? ?//亞像素檢測(cè)
?? ?cornerSubPix(image_gray,?
?? ??? ??? ??? ??? ?corners,?
?? ??? ??? ??? ??? ?Size(5, 5), //搜索窗口大小
?? ??? ??? ??? ??? ?Size(-1, -1),?
?? ??? ??? ??? ??? ?criteria);
?? ?//角點(diǎn)繪制
?? ?drawChessboardCorners(src,
?? ??? ??? ??? ??? ??? ??? ?Size(5, 7), //棋盤格每列點(diǎn)數(shù)和每一行點(diǎn)數(shù)
?? ??? ??? ??? ??? ??? ??? ?corners,?
?? ??? ??? ??? ??? ??? ??? ?ret);
?? ?cout << "corner: " << corners << endl;
?
?? ?//在原圖中繪制點(diǎn)
?? ?Point pt;
?? ?pt.x = corners[9].x;
?? ?pt.y = corners[9].y;
?? ?circle(src, pt, 4, Scalar(0, 255, 0),-1);
?
?? ?imshow("chessboard corners", src);
?? ?// ****************************************************************************************
?
?? ?waitKey(0);
?
?? ?return 0;
}結(jié)果展示:

以上就是本文的全部內(nèi)容,希望對(duì)大家的學(xué)習(xí)有所幫助,也希望大家多多支持腳本之家。
相關(guān)文章
C語言實(shí)現(xiàn)打印九九乘法表的四種方式小結(jié)
這篇文章主要為大家介紹了C語言實(shí)現(xiàn)打印九九乘法表的四種方式,文中的示例代碼講解詳細(xì),簡潔易懂,感興趣的小伙伴可以跟隨小編一起學(xué)習(xí)一下2023-07-07
C語言數(shù)組長度的計(jì)算方法實(shí)例總結(jié)(sizeof與strlen)
數(shù)組一旦創(chuàng)建,程序運(yùn)行期間,長度不可改變,下面這篇文章主要給大家介紹了關(guān)于C語言數(shù)組長度的計(jì)算方法,主要利用的是sizeof與strlen,文中通過實(shí)例代碼介紹的非常詳細(xì),需要的朋友可以參考下2022-06-06
OpenCV實(shí)現(xiàn)簡易標(biāo)定板
這篇文章主要為大家詳細(xì)介紹了OpenCV實(shí)現(xiàn)簡易標(biāo)定板,文中示例代碼介紹的非常詳細(xì),具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下2021-04-04
C++中std::tuple和std::pair的高級(jí)用法
本文主要介紹了C++標(biāo)準(zhǔn)庫中std::pair和std::tuple的使用,包括它們的基本概念、使用場(chǎng)景、區(qū)別以及高級(jí)用法,文中通過示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧2024-11-11
c++中#include <>與#include""的區(qū)別詳細(xì)解析
<>先去系統(tǒng)目錄中找頭文件,如果沒有在到當(dāng)前目錄下找。所以像標(biāo)準(zhǔn)的頭文件 stdio.h、stdlib.h等用這個(gè)方法2013-10-10

