代码如下:

face_cascade = cv2.CascadeClassifier('haarcascade_frontalface_default.xml')
 eye_cascade = cv2.CascadeClassifier('haarcascade_eye.xml')


img = cv2.imread('2015-05-27-191152.jpg')
gray = cv2.cvtColor(img, cv2.COLOR_BGR2GRAY)

faces = face_cascade.detectMultiScale(gray, 1.3, 5)
for (x,y,w,h) in faces:
    img = cv2.rectangle(img,(x,y),(x+w,y+h),(255,0,0),2)

返回如下:

File "face_detection.py", line 11, in <module>
    faces = face_cascade.detectMultiScale(gray, 1.3, 5)
cv2.error: /home/arthurckl/Desktop/opencv-3.0.0-rc1/modules/objdetect/src/cascadedetect.cpp:1595: error: (-215) !empty() in function detectMultiScale

墨莫末沫陌魔墨莫末沫陌魔提问于
萧雨牧歌潜行者回答于

在末尾添加这段代码并运行文件:

k = cv2.waitKey(0)
if k == 27:         # wait for ESC key to exit
    cv2.destroyAllWindows()
elif k == ord('s'): # wait for 's' key to save and exit
    cv2.imwrite('messigray.png',img)
    cv2.destroyAllWindows()

例如,我的代码看起来像

import numpy as np
import cv2

face_cascade = cv2.CascadeClassifier('C:\\opencv\\build\\etc\\haarcascades\\haarcascade_frontalface_default.xml')
eye_cascade = cv2.CascadeClassifier('C:\\opencv\\build\\etc\\haarcascades\\haarcascade_eye.xml')

img = cv2.imread('lena.jpg')

gray = cv2.cvtColor(img, cv2.COLOR_BGR2GRAY)

faces = face_cascade.detectMultiScale(gray, 1.3, 5)
#faces = face_cascade.detectMultiScale(gray)

for (x,y,w,h) in faces:
    cv2.rectangle(img,(x,y),(x+w,y+h),(255,0,0),2)
    roi_gray = gray[y:y+h, x:x+w]
    roi_color = img[y:y+h, x:x+w]
    eyes = eye_cascade.detectMultiScale(roi_gray)
    for (ex,ey,ew,eh) in eyes:
        cv2.rectangle(roi_color,(ex,ey),(ex+ew,ey+eh),(0,255,0),2)

cv2.imshow('img',img)

k = cv2.waitKey(0)
if k == 27:         # wait for ESC key to exit
    cv2.destroyAllWindows()
elif k == ord('s'): # wait for 's' key to save and exit
    cv2.imwrite('messigray.png',img)
    cv2.destroyAllWindows()

回答过的其他问题

Kafka Streams:流式计算、Kafka Streams的特点和架构是什么?

萧雨牧歌潜行者
Kafka Streams架构 Stream Partitions and Tasks 应用的processor topology通过拆分成多个task来完成扩容。更具体的,Kafka Streams根据输入的stream partitions创建固定的task,每个task分配...... 展开详请

使用LINQ[重复]列出<list<string>唯一排列

萧雨牧歌潜行者
你的输出显示两组笛卡尔乘积。 哪些带给你MoreLinq.Caresian(listA, listB) MoreLinq是一个Nuget包。 代码会喜欢 var amps = master[0] .Cartesian(master[1], (a, b) => new...... 展开详请

直播答题怎样才能才能延长自身的生命周期?

萧雨牧歌潜行者

忽然想起了2017年出现的狼人杀。别看这两个都是工具性产品,但之前狼人杀具有社交属性,直播答题就没有这一点,甚至不具有以往直播中主播和观众的互动这一点,因此,对于用户热度的持续性,我存在很大的怀疑。

服务器买上海的在北京可以备案吗?

云数据库MySQL连接方式?

萧雨牧歌潜行者
连接到CDB的方式有两种:外网访问:借助外网账号的方式。默认不开通外网访问,大陆地区的MySQL实例,在控制台实例管理页面可以开通外网访问,通过外网连接云数据库。内网访问:借助自动分配的内网地址,使用在同一个账号同一个地域的云服务器对数据库进行访问。这种方式由于使用内网高速网络,...... 展开详请

在XML成为标准并给出其所有缺点之前,是什么让XML变得如此受欢迎?

萧雨牧歌潜行者
它有许多优点,缺点很少。主要问题是文件大小增加和处理速度变慢。但是,有一些优点: 它是结构化的,所以你只编写一次解析器 它支持嵌套结构的数据(层次结构,树等) 您可以在一个XML中嵌入多种类型的数据结构 您可以使用标准语言(XSL ...)描述模式(数据类型等)... 展开详请

所属标签

扫码关注云+社区