- android - 多次调用 OnPrimaryClipChangedListener
- android - 无法更新 RecyclerView 中的 TextView 字段
- android.database.CursorIndexOutOfBoundsException : Index 0 requested, 光标大小为 0
- android - 使用 AppCompat 时,我们是否需要明确指定其 UI 组件(Spinner、EditText)颜色
我正在尝试检测 gif 图像中的人脸,但由于 OpenCV 不支持 gif 格式,所以我使用 PIL 模块读取 gif 图像并将其转换回 numpy 数组供 OpenCV 使用。但这样做我我收到断言错误。
下面是我的代码
import cv2
import numpy as np
from PIL import Image
# get the features and pass it to the Cascade Classifier
face_cascade = cv2.CascadeClassifier("haarcascade_frontalface_default.xml")
# read the image
img = Image.open("mypic.sleepy")
# check if image exists
if img is None:
raise Exception("could not load image !")
# represent the image in matrix format for the OpenCV to work on it
img = np.array(img)
# convert it to gray scale
gray = cv2.cvtColor(img, cv2.COLOR_BGR2GRAY)
# detect the objects resembling faces
faces = face_cascade.detectMultiScale(gray,1.5,3) #(image,scale_factor, minm_no_of_neighbours)
for face in faces:
# the detected face is represented in the form of a rectangle
x, y, w, h = face
# draw a rectangle on the face in the image
cv2.rectangle(img, (x,y), (x + w, y + h), (0, 255, 0), 2)
# show the image
cv2.imshow("Detected Faces", img)
# hold the window
cv2.waitKey(0)
# destroy all windows
cv2.destroyAllWindows()
这是我遇到的错误
OpenCV Error: Assertion failed (scn == 3 || scn == 4) in cvtColor, file /home/souvik/opencv-3.3.0/modules/imgproc/src/color.cpp, line 10638
我在互联网上发现的通常建议是图像未加载,这就是它抛出此类错误的原因,但很明显,在我的情况下,图像确实已加载,否则我的代码会抛出异常。此外,如果我尝试运行此代码
print(img.shape)
我得到的值是 (243, 320)
。那么我哪里出错了?
最佳答案
我已经用不同颜色的 gif 图像尝试了您的代码,并且在 img
上使用 face_cascade 本身似乎有效。尝试注释掉灰度转换并使用
faces = face_cascade.detectMultiScale(img,1.5,3)
关于python-3.x - 程序遇到 OpenCV 错误 : Assertion failed (scn == 3 || scn == 4),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/47696801/
我在 SceneKit 中编辑了一个对象并为其创建了 Material 。现在我想对另一个 scn 对象使用相同的材质。我只是使用 SceneKit 来编辑对象。 试图将它们放在同一个 xcode
我正在尝试训练神经网络模型,这是使图像居中的代码的一部分,问题是当我运行这段代码时- def centering_image(img): size = [256,256] img_size =
我刚开始在 Python 中使用 OpenCV 并遇到断言错误。我从 tutorial 中复制了以下代码,但它对我不起作用。 import numpy as np import cv2 as cv c
import numpy as np import cv2 import thread, winsound face_cascade = cv2.CascadeClassifier('C:\Users
我从其他解决方案中阅读了很多,但我仍然困惑我应该如何处理我的... #include #include #include #include #include using namespace
我在最后一帧遇到 Assertion failed 错误,同时逐帧读取和写入视频。错误只显示在最后一帧,不知道为什么。看到这个答案here ,这建议给 waitkey,我的代码已经有等待键了。 我的简
我目前在 Ubuntu 14.04 中,使用 python 2.7 和 cv2。 当我运行这段代码时: import numpy as np import cv2 img = cv2.imread('
我正在尝试在 Raspberry Pi 上运行人脸检测,因此我正在尝试找到最快的方法来完成所有操作。 (在 700MHz 处理器上,每一毫秒都至关重要!) 我做了一个快速的速度测试,使我需要检查的各种
我只想加载一个视频文件,将其转换为灰度并显示它。这是我的代码: import numpy as np import cv2 cap = cv2.VideoCapture('cars.mp4') whi
我是 OpenCV 的新手,在运行模板匹配代码时出现断言失败错误。错误信息如下所示 OpenCV Error: Assertion failed (scn == 3 || scn == 4) in c
我尝试播放教程中给出的文件中的视频。我的程序如下: import numpy as np import cv2 cap = cv2.VideoCapture('output.avi') while(c
我正在使用openCV通过python2处理视频捕获(.mkv文件) import cv2 (....) videofile = 'a.mkv' cap = cv2.VideoCapture(vide
我正在使用 raspberry pi camera和 python与 opencv .是相机没有工作吗? 下面是我的代码片段: import cv2 import numpy as np import
我关注了this tutorial OpenCV 对象跟踪并设法使代码在我的笔记本电脑上运行,无论是在使用 Visual Studio 的 Windows 上还是在我的 Ubuntu VM(使用 CM
我有简单的 OpenCV 代码,用于加载图像并将其转换为灰度。我有一个包含已复制图像的文件夹。就是一遍又一遍的同一个帧,不同的文件名,文件的内容完全一样。 我运行一个循环并尝试转换图像,它运行了 10
我正在尝试检测 gif 图像中的人脸,但由于 OpenCV 不支持 gif 格式,所以我使用 PIL 模块读取 gif 图像并将其转换回 numpy 数组供 OpenCV 使用。但这样做我我收到断言错
我正在尝试将 Mat 转换为灰度值,以便获得像素的数值。我在 void cv::cvtColor(cv::InputArray error) 上收到“断言失败(scn == 3 || scn == 4
这个问题在这里已经有了答案: OpenCV Error: Assertion failed (scn == 3 || scn == 4) in cv:: cvtColor, file ..\..\.
我正在尝试使用 kmeans 聚类从图像中获取最常见的颜色。它可以很好地处理本地镜像,但会通过从 url 中提取图像的新功能返回此错误。这是抛出错误的行之前的代码: # import the nece
我是 Python 和 OpenCV 的初学者。我正在尝试一段代码,它从网络摄像头获取输入图像。下面是一段代码。 cam = create_capture(video_src, fallback='s
我是一名优秀的程序员,十分优秀!