用于高分辨率图像的Opencv角点检测

我刚刚使用OpenCV实现角点检测,我将角点值设为零。我使用3488 * 2616分辨率相机images.it是否有任何正确的方法来找到高分辨率图像的角点检测。我不知道我在哪里我犯了错误。在这里我也附上了我的代码和图片。请帮助我。对于我的英语来说,这是一个非常新的opencv.sorry。

int board_w = 6; int board_h = 6; const int MAX_CORNERS = 500; int main() { int board_n = (board_w-1) * (board_h-1); CvSize board_sz = cvSize( board_w-1, board_h-1 ); CvPoint2D32f* corners = new CvPoint2D32f[board_n]; int cornerCount = 0; IplImage *image = cvLoadImage("myimage.jpg"); IplImage *gray_image = cvCreateImage(cvGetSize(image),8,1); cvCvtColor(image, gray_image, CV_BGR2GRAY ); const int N = cvFindChessboardCorners(gray_image,board_sz,&corners[0],&cornerCount,10); cvFindCornerSubPix(gray_image,&corners[0],cornerCount,cvSize(3,3),cvSize(-1,-1),cvTermCriteria(CV_TERMCRIT_EPS,0,.01)); printf("\ the count was:%d \n",cornerCount); for (int i = 0; i < cornerCount; i++) { cvCircle (image, cvPointFrom32f (corners[i]), 3, CV_RGB (0, 0, 255), 2); } cvNamedWindow("firstframe"); cvShowImage("firstframe",image); cvWaitKey(0); cvReleaseImage(&image); cvReleaseImage(&gray_image); } 

该代码适用于普通的棋盘图像。但是当使用具有该分辨率的实时相机图像时它将无法工作。请帮助我。提前感谢。 在此处输入图像描述

如果您怀疑检测确实是因为您使用的是高分辨率图像而失败,那么您始终可以将IplImage cvResize() 缩小到更小的尺寸并validation您的观察结果。