2 weixin 30278365 weixin_30278365 于 2017.09.11 08:46 提问

在使用重载函数时出现的问题

class IPM {

private:

    // Sizes
    cv::Size m_origSize;
    cv::Size m_dstSize;

    // Points
    std::vector<cv::Point2f> m_origPoints;
    std::vector<cv::Point2f> m_dstPoints;

    // Homography
    cv::Mat m_H;
    cv::Mat m_H_inv;

    // Maps
    cv::Mat m_mapX, m_mapY;
    cv::Mat m_invMapX, m_invMapY;

    void createMaps();

public:

    IPM( const cv::Size& _origSize, const cv::Size& _dstSize, const std::vector<cv::Point2f>& _origPoints, const std::vector<cv::Point2f>& _dstPoints );

    // Apply IPM on points
    cv::Point2d applyHomography(const cv::Point2d& _point, const cv::Mat& _H);
    cv::Point3d applyHomography( const cv::Point3d& _point, const cv::Mat& _H);
    cv::Point2d applyHomography(const cv::Point2d& _point);
    cv::Point3d applyHomography( const cv::Point3d& _point);
    cv::Point2d applyHomographyInv(const cv::Point2d& _point);
    cv::Point3d applyHomographyInv( const cv::Point3d& _point);
    void applyHomography( const cv::Mat& _origBGR, cv::Mat& _ipmBGR, int borderMode = cv::BORDER_CONSTANT);
    void applyHomographyInv( const cv::Mat& _ipmBGR, cv::Mat& _origBGR, int borderMode = cv::BORDER_CONSTANT);

    // Draw
    void drawPoints( const std::vector<cv::Point2f>& _points, cv::Mat& _img ) const;

    //********************************************************************************************
    //* SETTERS AND GETTERS
    //********************************************************************************************
    cv::Mat getH() const { return m_H; }

    cv::Mat getHinv() const { return m_H_inv; }

    void getPoints(std::vector<cv::Point2f>& _origPts, std::vector<cv::Point2f>& _ipmPts);

};
IPM::IPM( const Size& _origSize, const Size& _dstSize, const vector& _origPoints, const vector& _dstPoints ): m_origSize(_origSize), m_dstSize(_dstSize), m_origPoints(_origPoints), m_dstPoints(_dstPoints){
m_H = getPerspectiveTransform( m_origPoints, m_dstPoints );
m_H_inv = m_H.inv();

createMaps();

}
IPM::IPM ipm( Size(imgG.cols, imgG.rows), Size(imgG.cols, imgG.rows), orgPts, dstPts ); // IPM object

ipm.applyHomography( imgG, imgIpm );
鼠标放在IPM::IPM ipm时会出现无法确定需要哪个重载函数
    错误提示“IPM::{ctor}”:  函数调用缺少参数列表;请使用“&IPM::{ctor}”创建指向成员的指针
    “ipm”:  找不到标识符
Csdn user default icon
上传中...
上传图片
插入图片
准确详细的回答,更有利于被提问者采纳,从而获得C币。复制、灌水、广告等回答会被删除,是时候展现真正的技术了!
其他相关推荐
关于出现多个重载函数的问题
#include&amp;lt;iostream&amp;gt; using namespace std; template&amp;lt;class T&amp;gt; void swap1(T &amp;amp;x,T &amp;amp;y) { T temp = x; x = y; y = temp; } /*void swap(int &amp;amp;x, int &amp;amp;y) { int temp = x; x = y; y = t...
函数模板使用过程中的问题
在编程过程中需要用到将字符串转换为数字的函数,又应为数字的变量类型又比较多如:int,double等。如何能够用一个函数就解决呢?我就想到了函数模板。实际使用中也出现了问题。先将完成的函数贴上来:#include "stdafx.h" #include <iostream> #include <sstream> #include <string> using namespace std; templ
函数重载遇上函数默认值会发生什么?----二义性
#include <iostream>using namespace std;int func(int a,int b,int c = 0) { return a*b*c; } int func(int a,int b) { return a+b; }int main() { cout << "func(1,2): " << func(1,2) << endl; ret
重载函数模板
//求两个int值得最大值 inline int const& max(int const&  a,int const& b) {     return a } //求两个任意类型值中的最大者 template inline T const& max(T const& a,T const& b) {   return a } //求3个任意类型值中的最大者 temp
MFC 出现 重载函数XX已存在 的解决
针对双击控件,弹出如下提示“重载函数XX已存在”。 以下是解决办法 1.删除相关cpp文件中的以下数据: BEGIN_MESSAGE_MAP类中的相关信息 void相关信息 2.删除相关h文件中的以下数据: public下面的相关信息 例: 我建立一个名为IDC_BUTTON1的按钮 双击之后提示“重载函数OnBnClickedButton
【mfc】mfc双击按钮时出现重载xxxx函数已经存在问题
转自:http://blog.csdn.net/fengxiaochenduanduan/article/details/12869145 引起这个问题的原因有很多,有时是vs自身的原因,有时是程序的问题 (1)当项目名称,或者类名称中出现汉字时,容易发生此种情况,新建项目或类时需要注意 当上述不存在问题时,可以通过重新创建按钮来解决,删除BEGIN_MESSAGE_MAP中的按钮消息映
当函数重载遇上函数指针
#include<iostream> #include<string>using namespace std;void func() { cout << "void func()" << endl; }void func(int a) { cout << "void func(int a)" << endl; }void func(int a, int b) { cout <
MFC 双击控件 提示重载函数已存在
       VS2013 界面双击按钮控件,提示重载函数已存在,一般情况下,双击控件都是可以跳到代码处的,为什么现在不能了?       这涉及到VS2013的自动生成问题 。        原因:双击控件跳到代码处时,除了自动生成函数名,头文件还得生成函数声明,此时如果不保存文件,虽然C文件没有了这个函数,可是头文件还有声明,当再次双击控件,VS2013一检查头文件发现有该控件函数声
确定重载函数被调用的依据
这个标题或许还可以叫做,怎么样判断两个函数是否是重载函数。 由于今天做了道面试题,题目是:系统在调用重载函数时,能作为确定那个重载函数被调用的依据是() 我选的是A函数返回类型,正确答案是B参数个数。 查阅书籍之后发现重载函数的定义是:同一个类中包含了两个或两个以上方法的方法名相同,但形参列表不同,则被称为方法重载. 方法重载就要求两同一不同:同一类中方法名相同,但是参数列表不同。我来补充一下自己
C++为什么可以进行函数重载以及引起的二义性问题
关于C++中函数重载是在C语言基础上的一大特色,不过有好也有坏,虽然C++的函数重载大大方便了编程人员,但是却有时候使用不当会引起问题,最典型的就是函数重载的二义性问题。首先我们知道C++函数重载的条件,以及C++中为什么可以函数重载,这样才可以避免C++函数重载中的二义性问题。 C++函数重载的条件有三个: (1)函数必须位于同一作用域之中。(重载顾名思义是地位相同的两个函数,可以说两个函数