gpt4 book ai didi

python - 神秘的 OpenCv 错误

转载 作者:太空宇宙 更新时间:2023-11-03 21:50:32 26 4
gpt4 key购买 nike

我正在尝试使用 haarcascade 全身算法在 Python 中使用 OpenCv 来检测图像中的人类。

当我考虑在单个图像上使用它时,我没有遇到任何问题。

import numpy as np
import cv2 as cv

body_cascade = cv.CascadeClassifier(r'...\haarcascade_fullbody.xml')
image = cv.imread(r'...\image.jpg')
gray = cv.cvtColor(image, cv.COLOR_BGR2GRAY)
body = body_cascade.detectMultiScale(gray, 1.01, 4)
for (x,y,w,h) in body:
cv.rectangle(image,(x,y),(x+w,y+h),(255,0,0),3)

但是,当我尝试使用同一个程序并一次迭代多个图像时,我遇到了一个神秘的 OpenCv 错误。我在一个文件夹中有一些图像,我想将其中有人物的图像与没有人物的图像分开。我写了以下内容:

import os

for file in os.walk(r'...\Folder'):
file=str(file)
im=cv.imread(file)
gray = cv.cvtColor(im, cv.COLOR_BGR2GRAY)
body = body_cascade.detectMultiScale(gray, 1.01, 4)
for (x,y,w,h) in body:
cv.rectangle(im,(x,y),(x+w,y+h),(255,0,0),3)
if(body.size >= 0):
print('okay')
else:
print('Not okay')

但是我得到以下错误:

error: OpenCV(3.4.2) c:\projects\opencv-python\opencv\modules\imgproc\src\color.hpp:253: error: (-215:Assertion failed) VScn::contains(scn) && VDcn::contains(dcn) && VDepth::contains(depth) in function 'cv::CvtHelper<struct cv::Set<3,4,-1>,struct cv::Set<1,-1,-1>,struct cv::Set<0,2,5>,2>::CvtHelper'

对于行 gray = cv.cvtColor(im, cv.COLOR_BGR2GRAY)

我无法理解错误是什么,以及为什么在拍摄单张图像时可以使用相同的代码,但在遍历文件夹时却不能。我需要调整图像大小吗?

此外,我尝试在文件夹中只保留一张图像,代码之前在该图像上运行,但仍然不起作用。

最佳答案

Doc,OpenCV 似乎无法定位图像。如果您使用完整路径而不是相对路径会怎样? (那里的三个点“...”是什么?)请将您读回的文件转储到光盘以进行调试,我想您会感到惊讶。

关于python - 神秘的 OpenCv 错误,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/51818302/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com