相关疑难解决方法(0)

OpenCV C++/Obj-C:检测一张纸/方形检测

我在我的测试应用程序中成功实现了OpenCV平方检测示例,但现在需要过滤输出,因为它非常混乱 - 或者我的代码是错误的?

我对本文的四个角点感兴趣,以减少偏斜(如此)和进一步处理......

输入输出: 输入输出

原始图片:

点击

码:

double angle( cv::Point pt1, cv::Point pt2, cv::Point pt0 ) {
    double dx1 = pt1.x - pt0.x;
    double dy1 = pt1.y - pt0.y;
    double dx2 = pt2.x - pt0.x;
    double dy2 = pt2.y - pt0.y;
    return (dx1*dx2 + dy1*dy2)/sqrt((dx1*dx1 + dy1*dy1)*(dx2*dx2 + dy2*dy2) + 1e-10);
}

- (std::vector<std::vector<cv::Point> >)findSquaresInImage:(cv::Mat)_image
{
    std::vector<std::vector<cv::Point> > squares;
    cv::Mat pyr, timg, gray0(_image.size(), CV_8U), gray;
    int thresh = 50, N = 11;
    cv::pyrDown(_image, pyr, cv::Size(_image.cols/2, _image.rows/2));
    cv::pyrUp(pyr, …
Run Code Online (Sandbox Code Playgroud)

c++ opencv image-processing objective-c computer-vision

171
推荐指数
3
解决办法
11万
查看次数

如何执行文档自动裁剪使用相机识别图像?

我想制作一个类似凸轮扫描仪的应用程序来裁剪文档.

但我需要像我的两个图像一样的功能..

第一张图像显示相机拍摄的图像..

在此输入图像描述

第二个图像像这样识别捕获的图像部分.

在此输入图像描述

我研究得越来越多,但没有得到任何外出,所以,我在这里问,是否有任何人这样做告诉我..

谢谢

ocr android opencv crop

25
推荐指数
3
解决办法
3万
查看次数

如何在openCV中找到Rect对象的角?

我在android平台上使用openCV库.我已成功检测到图像中最大的矩形,但由于我的应用程序将用于扫描目的,我还希望获得透视更改功能.

我知道,如何应用perspectiveTransform和warpPerspectiveTransform,但为此我将需要源点的矩形角.

考虑到我们拥有与Rect对象相关的第一个角(左上角)和宽度/高度的坐标这一事实似乎很容易找到角落,但问题是,对于旋转的矩形(通常的boundingRect但是不平行的边) ()),这些值是非常不同的.在这种情况下,它存储对应于另一个矩形的值,该矩形的边与轴平行并覆盖旋转的矩形,这使我无法检测实际矩形的角.

另外,我想对这两种算法进行比较,以便从图像中检测纸张.

  1. Canny edge - >最大轮廓 - >最大矩形 - >查找角落 - >透视变化

  2. Canny edge-> Hough lines - >线的交点 - >透视变化

如果我们有一个Rect对象,如何获得该矩形的所有角落,我想问的问题是什么?

提前致谢.

algorithm android opencv image-processing feature-detection

10
推荐指数
1
解决办法
1万
查看次数