python - 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: 断言失败) 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,self.image_height),(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)
我在这里试过这个答案,但它没有帮助,请你看看它。
解决方案
推荐阅读
- algorithm - 获取第k个元素的最优数据结构和算法
- html - 使用按钮随机更改 h1 的位置
- python - 如何使用 docker-compose 运行 Python Django 和 Celery?
- r - 从 github 组织拥有的私有仓库安装 R 包
- android - Termux 权限被拒绝
- java - 提出适当的正则表达式的问题
- python - 如何在 EC2 上制作一个正在运行的烧瓶 - 允许从外部访问?
- sqlcipher - 如何提高 sqlicifer 的性能?
- azure - 使用 U-SQL 查询 JSON 嵌套对象
- javascript - Google Charts - 通过 PHP echo 放置数据