程序问答   发布时间:2022-06-02  发布网站:大佬教程  code.js-code.com
大佬教程收集整理的这篇文章主要介绍了OpenCV Python cv2.perspectiveTransform大佬教程大佬觉得挺不错的,现在分享给大家,也给大家做个参考。

如何解决OpenCV Python cv2.perspectiveTransform?

开发过程中遇到OpenCV Python cv2.perspectiveTransform的问题如何解决?下面主要结合日常开发的经验,给出你关于OpenCV Python cv2.perspectiveTransform的解决方法建议,希望对你解决OpenCV Python cv2.perspectiveTransform有所启发或帮助;

确实需要在将来的版本中更改此实现。

从OpenCV文档中获得perspectiveTransform()

我偏重强调。

>>> A = np.array([[0, 0]], dtype=np.float32)
>>> A.shape
(1, 2)

因此,从这里我们看到的A只是一个单通道矩阵,即二维矩阵。一排,两列。相反,您需要一个 两通道 图像,即一个三维矩阵,其中三维尺寸的长度为2或3,具体取决于您是以2D还是3D点进行发送。

简而言之,您需要再添加一组括号,以三维方式发送要发送的点集,其中x值在第一个通道中,而y值在第二个通道中。

>>> A = np.array([[[0, 0]]], dtype=np.float32)
>>> A.shape
(1, 1, 2)

它不是直观的,尽管有文档记录,但在这一点上不是很明确。

解决方法

我目前正在尝试使用OpenCV和Python进行视频稳定化。我使用以下函数来计算旋转:

def accumulate_rotation(src,theta_x,theta_y,theta_z,timestamps,prev,current,f,gyro_delay=None,gyro_drift=None,shutter_duration=NonE):
    if prev == current:
        return src

    pts = []
    pts_transformed = []
    for x in range(10):
        current_row = []
        current_row_transformed = []
        pixel_x = x * (src.shape[1] / 10)
        for y in range(10):
            pixel_y = y * (src.shape[0] / 10)
            current_row.append([pixel_x,pixel_y])

            if shutter_duration:
                y_timestamp = current + shutter_duration * (pixel_y - src.shape[0] / 2)
            else:
                y_timestamp = current

            transform = getAccumulatedRotation(src.shape[1],src.shape[0],gyro_delay,gyro_drift)

            output = cv2.perspectiveTransform(np.array([[pixel_x,pixel_y]],dtype="float32"),transform)
            current_row_transformed.append(output)

        pts.append(current_row)
        pts_transformed.append(current_row_transformed)

    o = utilities.meshwarp(src,pts_transformed)
    return o

我遇到以下错误output = cv2.perspectiveTransform(np.array([[pixel_x,transform)

cv2.error: /Users/travis/build/skvark/opencv- python/opencv/modules/core/src/matmul.cpp:2271: error: (-215) scn + 1 == m.cols in function perspectiveTransform

任何帮助或建议,将不胜感激。

大佬总结

以上是大佬教程为你收集整理的OpenCV Python cv2.perspectiveTransform全部内容,希望文章能够帮你解决OpenCV Python cv2.perspectiveTransform所遇到的程序开发问题。

如果觉得大佬教程网站内容还不错,欢迎将大佬教程推荐给程序员好友。

本图文内容来源于网友网络收集整理提供,作为学习参考使用,版权属于原作者。
如您有任何意见或建议可联系处理。小编QQ:384754419,请注明来意。