我现在正在学习OpenCV。本练习的目标是从一个放置的角度获取扑克卡的4个角点,并在你面前将其弯曲
正如您所看到的,我已经在pts1
/corners中正确地分配了坐标(至少在检查之后,看起来是这样)
在输出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)
我已经将您的代码与我自己的图像一起使用,以重新生成错误,但效果很好。 您可以将您的输入图像发布给我们,或者确保您选择的点不大于图像本身,因为我可以看到您正在硬编码这些点
相关问题 更多 >
编程相关推荐