如何解决cv2 断言失败错误,p.checkVector(2, CV_32S) 问题与 FillPoly
感谢您对此进行调查,我有一个使用 cv2 进行车道检测的 python 脚本,似乎是 cv2 函数导致了以下错误。
cv2.error: OpenCV(4.5.1) C:\Users\appveyor\AppData\Local\Temp\1\pip-req-build-r2ue8w6k\opencv\modules\imgproc\src\drawing.cpp:2395:错误: (-215:Assertion failed) p.checkVector(2,CV_32S) >= 0 in function 'cv::fillPoly'
当我运行以下代码时
import cv2
import numpy as np
import matplotlib.pyplot as plt
from numpy.lib.twodim_base import tri
image = cv2.imread('Lane1-a.jpg')
class ImageProcess:
image_height =0
image_width = 0
def __init__(self,image):
self.image_height = image.shape[0]
self.image_width = image.shape[1]
def Preprocess(self,image):
copy = self.GetCopy(image)
gray = self.GetGrayScale(copy)
blur = cv2.GaussianBlur(gray,(5,5),0)
edgify = cv2.Canny(blur,50,150)
return edgify
def GetCopy(self,image):
return np.copy(image) # do not use lane_image = image ( this does not create a copy but modifies origanl array)
def GetGrayScale(self,image):
return cv2.cvtColor(image,cv2.COLOR_RGB2GRAY)
def ShowImage(self,image):
plt.imshow(image)
plt.show()
def ReigonOfIntrest(self,image):
traingle = np.array([(200,self.image_height),(1000,(550,400)])
mask = np.zeros_like(image)
cv2.fillPoly(mask,traingle,255)
return mask
p = ImageProcess(image)
mask = p.ReigonOfIntrest(p.Preprocess(image))
p.ShowImage(mask)
我在这里尝试了 This answer,但没有帮助,请您查看一下。
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。