【发布时间】: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++