首页 > 解决方案 > 单应性方向错误

问题描述

我正在尝试使用 opencv cv.findChessboardCornerscv.findHomographycv.warpPerspective在我的视频源中找到一个棋盘并以原始视角显示它。

我的问题是结果有时是相反的。棋盘显示正确,透视也正确,但是单应性倒置(可以在2.图中看到,绘制的关键点颜色不正确)

我认为这是因为棋盘没有方向,即如果我翻转它,它是相同的。但我不知道如何解决这个问题,因为它似乎是棋盘固有的。

第一个是正确的,第二个是轻微移动的,方向是翻转的 这里方向正确,kp匹配 这里 kp 是倒置的

这是我写的部分代码:

       # checkerboard is a uint8 array that i created, corner_count is the tuple with patternSize
        _, self.cb_corners = cv.findChessboardCorners(checkerboard, corner_count)
       found_board, corners = cv.findChessboardCorners(
            image=frame,
            patternSize=self.corner_count,
            flags=cv.CALIB_CB_FAST_CHECK +
                  cv.CALIB_CB_NORMALIZE_IMAGE +
                  cv.CALIB_CB_ADAPTIVE_THRESH)
        if found_board:
             retval, mask = cv.findHomography(self.cb_corners, corners)   
             dst = cv.warpPerspective(frame, self.homography, (1920, 1080))
             cv.imshow("dst", dst)

标签: pythonopencvhomography

解决方案


推荐阅读