OpenCV 2.4.5で私のウェブカメラのチェッカーボードパターンを認識しようとしています。私はその作業を得ることができませんでしたので、私はそれだけで「完璧な」イメージを使用して作業を取得しようとすることを決めた:findChessboardCornersが較正に失敗する
が、それはまだ動作しません - PATTERNFOUNDは毎回falseを返します。誰かが私が間違っていることを知っていますか?
#include <stdio.h>
#include <opencv2/core/core.hpp>
#include <opencv2/imgproc/imgproc.hpp>
#include <opencv2/calib3d/calib3d.hpp>
#include <opencv2/highgui/highgui.hpp>
using namespace cv;
using namespace std;
int main(){
Size patternsize(8,8); //number of centers
Mat frame = imread("perfect.png"); //source image
vector<Point2f> centers; //this will be filled by the detected centers
bool patternfound = findChessboardCorners(frame,patternsize,centers);
cout<<patternfound<<endl;
drawChessboardCorners(frame, patternsize, Mat(centers), patternfound);
cvNamedWindow("window");
while(1){
imshow("window",frame);
cvWaitKey(33);
}
}
を使用。私は繰り返し、チェス盤は非対称である必要があります。他の方法で校正する方法を教えてください。 – CTZStef
@laurenelizabethあなたの答えは私を一歩近づけましたが、私は同じ問題をまだ持っているようです。 8x8の代わりに約7x7のヒントが私にとって非常に重要でした。しかし、私はまだ完全に近くの写真でも、撮影されたチェス盤の角を検出することはできません。 –
私たちは非対称9x7チェス盤を試しており、8x6(インテリアスクエア)を求めています。それはちょうど本当に速く働いた。検出に問題はありません。そして、我々は、両方のカメラが同時に物を検出するときにのみ考慮するダブルカメラを使用しています。 感謝!!! – helios