如何将C++获取函数代码转换为OpenCV算法中的Python

2024-10-01 02:37:47 发布

您现在位置:Python中文网/ 问答频道 /正文

< >我想把下面的C++代码转换成Python。但我似乎找不到第7行的等效项:MapProjec*mapProj=dynamic_cast(mapPtr.get())

static void calcHomographyPixel(const Mat& img1, const Mat& img2)
{
    static const char* diffpixel = "Difference pixel registered";

    Ptr<MapperGradProj> mapper = makePtr<MapperGradProj>();
    MapperPyramid mappPyr(mapper);
    Ptr<Map> mapPtr = mappPyr.calculate(img1, img2);

    MapProjec* mapProj = dynamic_cast<MapProjec*>(mapPtr.get());
    mapProj->normalize();
    cout << "--- Pixel-based method\n" << Mat(mapProj->getProjTr()) << endl;

    Mat dest;
    mapProj->inverseWarp(img2, dest);
    showDifference(img1, dest, diffpixel);
}

到目前为止,我得到的是:

def calc_homography_pixel(img1, img2):

    mapper = cv2.reg_MapperGradProj()
    mapp_pyr = cv2.reg_MapperPyramid(mapper)
    map_ptr = mapp_pyr.calculate(img1, img2)

    map_proj = cv2.reg_MapProjec(map_ptr) # the issue is how to the map from the pyramid cal.
    map_proj = map_proj.normalize()

    dest = map_proj.inverseWarp(img2) 

如蒙指教,不胜感激


Tags: themapregcv2destimg1projmapper