C++ 使用“旋转”时的图像;findHomography“;及;“透视图”;
我目前正在开发一个ALPR系统。为了首先检测板,我使用所述方法 问题出现在某些图像上。在使用findHomography和warpPerspective后,它给了我旋转的平板图像 这是给我带来问题的原始图像。 这是检测到的板轮廓 这是扭曲的图像 如你所见,它旋转了90度。在其他例子中,检测工作非常出色 特定的代码段C++ 使用“旋转”时的图像;findHomography“;及;“透视图”;,c++,opencv,computer-vision,C++,Opencv,Computer Vision,我目前正在开发一个ALPR系统。为了首先检测板,我使用所述方法 问题出现在某些图像上。在使用findHomography和warpPerspective后,它给了我旋转的平板图像 这是给我带来问题的原始图像。 这是检测到的板轮廓 这是扭曲的图像 如你所见,它旋转了90度。在其他例子中,检测工作非常出色 特定的代码段 cv::Mat warpped_plate( PLATE_HEIGHT, PLATE_WIDTH, CV_8UC3 ); vector< cv::Point> re
cv::Mat warpped_plate( PLATE_HEIGHT, PLATE_WIDTH, CV_8UC3 );
vector< cv::Point> real_plate_polygons;
real_plate_polygons = {cv::Point(PLATE_WIDTH, PLATE_HEIGHT), cv::Point(0, PLATE_HEIGHT), cv::Point(0, 0), cv::Point(PLATE_WIDTH, 0)};
cv::Mat homography = cv::findHomography( plate_polygons, real_plate_polygons );
cv::warpPerspective(source_img, warpped_plate, homography, cv::Size(PLATE_WIDTH, PLATE_HEIGHT));
cv::垫翘曲板(板高、板宽、cv_8UC3);
向量真实的平面多边形;
实板多边形={cv::Point(板宽度,板高度),cv::Point(0,板高度),cv::Point(0,0),cv::Point(板宽度,0)};
cv::Mat单纯形=cv::findHomography(平板多边形、实平板多边形);
cv::翘曲透视图(源图像、翘曲板、单应性、cv::尺寸(板宽度、板高度));
其中,plate_多边形包含板的四个点(并且是正确的,因为它们用于在遮罩中绘制白色框)
有什么想法吗?提前谢谢 正如尼科所提到的,问题在于平面多边形中点的顺序。生成它们的算法在起始点上不一致(在我的例子中,从较低的位置开始)。然后,
plate\u polygon
显然顺序错误。循环输入,以实现在实板\u多边形中的角点顺序。