【问题标题】:Warp an image from given coordinates - OpenCV Python从给定坐标扭曲图像 - OpenCV Python
【发布时间】:2021-03-07 21:53:19
【问题描述】:

我现在正在学习 OpenCV。本练习的目标是从放置的角度获取扑克牌的 4 个角点,并将其平展在您面前。

如您所见,我在pts1/ 角中正确分配了坐标(至少在检查后看起来是这样)。

输出imgWarped后会抛出错误:

traceback (most recent call last):
  File "C:\Users\draco\PycharmProjects\Reader\main.py", line 101, in <module>
    imgWarped = cv2.warpPerspective(img,matrix,(width,height))
cv2.error: OpenCV(4.4.0) C:\Users\appveyor\AppData\Local\Temp\1\pip-req-build-95hbg2jt\opencv\modules\imgproc\src\imgwarp.cpp:3143: error: (-215:Assertion failed) _src.total() > 0 in function 'cv::warpPerspective'

在线文档并没有帮助我解决这个问题。我的错误消息实际上是什么意思,它是如何发生的?有更好的做法吗?

代码如下:

import cv2
import numpy as np

img = cv2.imread("Resources/cards.jpg")
width,height = 250,350
pts1 = np.float32([[124,161],[189,155],[200,231],[135,245]])
pts2 = np.float32([[0,0],[width,0],[width,height],[0,height]])
matrix = cv2.getPerspectiveTransform(pts1,pts2)
---Here is the error --> imgWarped = cv2.warpPerspective(img,matrix,(width,height))


cv2.imshow("Warped Img", imgWarped)
cv2.waitKey(0)

【问题讨论】:

  • 请分享输入图片。

标签: python c++ numpy opencv visual-c++


【解决方案1】:

我已将您的代码与我自己的图像一起使用来重新生成错误,但它工作正常。 您可以将您的输入图像发布给我们,或者确保您选择的点不大于您自己的图像,因为我可以看到您正在对这些点进行硬编码

【讨论】:

    猜你喜欢
    • 2017-02-12
    • 1970-01-01
    • 2021-11-08
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2015-03-18
    • 1970-01-01
    • 2015-09-03
    相关资源
    最近更新 更多