我刚刚使用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您的观察结果。
以上就是c/c++开发分享用于高分辨率图像的Opencv角点检测相关内容,想了解更多C/C++开发(异常处理)及C/C++游戏开发关注计算机技术网(www.ctvol.com)!)。
本文来自网络收集,不代表计算机技术网立场,如涉及侵权请联系管理员删除。
ctvol管理联系方式QQ:251552304
本文章地址:https://www.ctvol.com/c-cdevelopment/523105.html