相关疑难解决方法(0)

如何检查获得的单应矩阵是否良好?

这个问题已被问到,但我仍然没有得到它.我通过cv::findHomography从一组点调用来获得单应矩阵.我需要检查它是否相关.
所提出的方法是计算内部的最大重投影误差并将其与阈值进行比较.但是经过这样的过滤后,我不断进行疯狂的变换,物体边界框转换成几乎一条直线或一些奇怪的非凸四边形,有自交叉等.
可以用什么约束来检查单应矩阵本身是否足够?

opencv image-processing computer-vision homography ransac

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

使用SURF在检测到的对象周围绘制矩形

我试图从以下代码中检测一个涉及冲浪探测器的对象,我不想绘制匹配,我想在检测到的对象周围画一个矩形,但不知怎的,我无法得到正确的Homography,请任何人都可以指出哪里我错了.

#include <stdio.h>
#include <iostream>
#include "opencv2/core/core.hpp"
#include "opencv2/features2d/features2d.hpp"
#include "opencv2/highgui/highgui.hpp"
#include "opencv2/imgproc/imgproc.hpp"
#include "opencv2/calib3d/calib3d.hpp"

using namespace cv;

int main()
{
    Mat object = imread( "sample.jpeg", CV_LOAD_IMAGE_GRAYSCALE );

    if( !object.data )
    {
        std::cout<< "Error reading object " << std::endl;
        return -1;
    }

    //Detect the keypoints using SURF Detector
    int minHessian = 500;

    SurfFeatureDetector detector( minHessian );
    std::vector<KeyPoint> kp_object;

    detector.detect( object, kp_object );

    //Calculate descriptors (feature vectors)
    SurfDescriptorExtractor extractor;
    Mat des_object;

    extractor.compute( object, kp_object, des_object );

    FlannBasedMatcher matcher;

    VideoCapture cap(0);

    namedWindow("Good …
Run Code Online (Sandbox Code Playgroud)

opencv object-detection surf homography

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