从给定坐标扭曲图像OpenCV Python

2024-09-30 02:16:27 发布

您现在位置:Python中文网/ 问答频道 /正文

我现在正在学习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)

Tags: insrcimg错误nperrorwidthcv2
1条回答
网友
1楼 · 发布于 2024-09-30 02:16:27

我已经将您的代码与我自己的图像一起使用,以重新生成错误,但效果很好。 您可以将您的输入图像发布给我们,或者确保您选择的点不大于图像本身,因为我可以看到您正在硬编码这些点

相关问题 更多 >

    热门问题