Hier ist mein CodefindChessboardCorners gibt unerwartete Ergebnisse
#include <opencv/cv.h>
#include <opencv/highgui.h>
#include<opencv2/opencv.hpp>
#include<iostream>
//#include<vector>
using namespace cv;
using namespace std;
int main()
{
VideoCapture cap = VideoCapture(0);
int successes = 0;
int numBoards = 0;
int numCornersHor = 6;
int numCornersVer = 4;
int numSquares = (numCornersHor - 1) * (numCornersVer - 1);
Size board_sz = Size(numCornersHor, numCornersVer);
vector<Point2f> corners;
for (;;)
{
Mat img;
cap >> img;
Mat gray;
cvtColor(img, gray, CV_RGB2GRAY);
if (img.empty()) break; // end of video stream
imshow("this is you, smile! :)", gray);
if (waitKey(1) == 27) break; // stop capturing by pressing ESC
bool found = findChessboardCorners(gray, board_sz, corners, CALIB_CB_ADAPTIVE_THRESH);
if (found == 1)
{
cout << corners.size()<<"\n";
cornerSubPix(gray, corners, Size(11, 11), Size(-1, -1), TermCriteria(CV_TERMCRIT_EPS | CV_TERMCRIT_ITER, 30, 0.1));
drawChessboardCorners(gray, board_sz, corners, found);
}
}
cap.release();
waitKey();
return 0;
}
Die Coderahmen von einer Webcam aufzeichnet. Wenn ein Schachbrett entdeckt wird, wird die Gesamtzahl der gefundenen Ecken ausgedruckt (ich habe es gemacht, weil ich nicht die gleiche Ausgabe wie im Tutorialcode erhalten habe und ich wollte herausfinden, wo der Fehler liegt).
Der Ausgang:
AUSGABE SAGT, DASS 11 ZEITECKEN ERKANNT WERDEN, ABER ich weiß nicht, way, dass so viel großer Wert kommt – dhc
was ist mit dem capslock? – slawekwin
Sorry! @slawekwin – dhc