Tag: 边缘检测

检测具有圆angular的卡的边缘

嗨,目前我正在一个OCR阅读应用程序,我已经成功地能够通过使用AVFoundation框架捕获卡图像。 对于下一步,我需要找出卡的边缘,以便我可以从主捕获的图像裁剪卡图像,稍后我可以将其发送到OCR引擎进行处理。 现在的主要问题是find卡的边缘,我正在使用下面的代码(取自另一个开源项目),它使用OpenCV为此目的。它是工作正常,如果卡是纯粹的矩形卡或纸。 但是,当我使用具有圆angular的卡(例如驾驶执照)时,它未能被发现。 另外我没有太多的OpenCV的专业知识,任何人都可以帮助我解决这个问题? – (void)detectEdges { cv::Mat original = [MAOpenCV cvMatFromUIImage:_adjustedImage]; CGSize targetSize = _sourceImageView.contentSize; cv::resize(original, original, cvSize(targetSize.width, targetSize.height)); cv::vector<cv::vector<cv::Point>>squares; cv::vector<cv::Point> largest_square; find_squares(original, squares); find_largest_square(squares, largest_square); if (largest_square.size() == 4) { // Manually sorting points, needs major improvement. Sorry. NSMutableArray *points = [NSMutableArray array]; NSMutableDictionary *sortedPoints = [NSMutableDictionary dictionary]; for (int i = […]