這是程式,沒問題,網上找的棋盤圖基本都可以運行,但是自己拍的棋盤圖片為啥檢測不到角點?
#include<iostream>
#include<opencv2/opencv.hpp>
using namespace std;
using namespace cv;
int main()
{
Mat srcimage;
Mat viewGray;
vector<Point2f> corners;
Size PatSize;
PatSize.width = 9;
PatSize.height = 6;
srcimage = imread("C:/Users/ASUS/Desktop/畢設/新建檔案夾/1/c.jpg");
cvtColor(srcimage, viewGray, COLOR_BGR2GRAY);
bool ret = findChessboardCorners(viewGray, PatSize, corners);
if (!ret)
{
cout << "Can not find the corners." << endl;
}
cornerSubPix(viewGray, corners, Size(11, 11),
Size(-1, -1), TermCriteria(TermCriteria::EPS + TermCriteria::COUNT, 40, 0.04));
drawChessboardCorners(srcimage, PatSize, Mat(corners), ret);
namedWindow("chessboard corners");
imshow("chessboard corners", srcimage);
waitKey(0);
}

uj5u.com熱心網友回復:
PatSize.width = 8試一下
uj5u.com熱心網友回復:
應該不行吧,得一奇一偶吧
uj5u.com熱心網友回復:
你的棋盤格角點就是8*6的,不是9*6
uj5u.com熱心網友回復:
PatSize.width = 8
試一下
應該不行吧,得一奇一偶吧
你的棋盤格角點就是8*6的,不是9*6
行,我試一下,不過再大的棋盤格,opencv中檢測棋盤角點函式也應該是設定多少角點檢測多少吧!
uj5u.com熱心網友回復:
PatSize.width = 8
試一下
應該不行吧,得一奇一偶吧
你的棋盤格角點就是8*6的,不是9*6
非常感謝,成功解決
轉載請註明出處,本文鏈接:https://www.uj5u.com/qita/43313.html
標籤:OpenCV
