当我使用opencv检测具有圆角的矩形时,需要解决一个问题。基本上我使用相同的代码示例squares.c:从具有圆角的矩形检测角点
cvFindContours(gray, storage, &contours, sizeof(CvContour), CV_RETR_LIST, CV_CHAIN_APPROX_SIMPLE);
while(contours)
{
double area=fabs(cvContourArea(contours, CV_WHOLE_SEQ));
if(area < minimum_area || area > maximum_area) {
contours = contours->h_next;
continue;
}
result = cvApproxPoly(contours, sizeof(CvContour), storage,
CV_POLY_APPROX_DP, cvContourPerimeter(contours)*0.05, 0);
if(result->total == 4 &&
fabs(cvContourArea(result,CV_WHOLE_SEQ)) > 1000 &&
cvCheckContourConvexity(result))
{
有了这个代码,我通常可以检测的图像,但我需要调整图像的角度和我需要检测图像的角落,如何做到这一点,图像有圆角?问题的发生是因为我不需要在点之间检测到点,例如,我创建了以下图像,黑色线代表现有代码检测到的点,蓝色点代表我需要的点。
感谢的任何帮助。
“我需要解决一个问题”,你的意思是“我想要一个现成的OpenCV函数来解决我的问题”?您的问题可以通过黑点的简单智能排序来解决。从那里你建立四个蓝色的角落。 – mmgp
@mmgp订购黑点?但黑点不包含蓝点! – Ricardo
我在这里找到了解决方案:http://stackoverflow.com/questions/22519545/automatic-perspective-correction-opencv – delkant