改变矢量的视角(考虑到cv :: warpPerspective)

时间:2013-08-13 10:50:48

标签: c++ opencv image-processing

说我有源图像,而不是使用getPerspectiveTransform和cv :: warpPerspective转换为dst图像。之后我在源图像中有特殊的点矢量,我想在我的dst图像中得到或者更确切地绘制它们,我认为这很明显,但我不这样做,为了更好地解释我有一个问题带棋盘的样本:

.................................
transformationMatrix= cv::getPerspectiveTransform(src_Point, quad_pts);
            cv::warpPerspective(src, dst, transformationMatrix, dst.size()/,CV_INTER_LINEAR,cv::BORDER_ISOLATED); 

这项工作很好所以现在我改变了我的src框架的视角。转换我的点并将它们放入dst我写了这个小函数

std::vector<cv::Point2f> warpStuff(std::vector<cv::Point2f> inputVector , cv::Mat transformationMatrix){
    cv::Matx33f warp = transformationMatrix;
    cv::Point3f homogenous;
    std::vector<cv::Point2f> result;

    for (int k  =0;  k < inputVector.size()-1; k++ ){
        homogenous = warp* inputVector[k];
        result.push_back(cv::Point2f(homogenous.x,homogenous.y));
    }

    return result;
}

当尝试在dst中绘制结果向量时,我没有得到他们位置的点数?

这是我的源图片 the source

并且在转换之后,在这里绘制结果时,我得到的是:

the dst image

我认为问题是cv :: warpPerspective除了转换矩阵之外还使用了dst图像的大小,我试着调试这些东西,但我真的不明白它用这个大小做什么所以我可以添加到我的功能!

有什么建议吗?

0 个答案:

没有答案