opencv 人脸识别 图像裁剪参数详解

起因:做项目的时候需要人脸识别出来抠像, 变量 = img[y1:y2,x1:x2]放入的这四个参数一直搞不明白,现在做一个详细解释.

案例

将图像扣成下图代码如下 

import cv2
img = cv2.imread("500x400.jpg")
img1=img[100:300,125:375] #需要保留的区域--裁剪
#参数1 是高度的范围,参数2是宽度的范围
 
cv2.imwrite("linsi.jpg",img1)
cv2.waitKey(0)

 其中四个参数[y1:y2,x1:x2]分别意义为:

y1:高度起始点 y2:高度结束点 x1:长度起始点 x2:长度结束点

我们知道使用opencv进行人脸识别会使用detectMultiScale函数,会返回x,y,w,h四个参数.

其中,w是矩形长度,h为矩形高度,可知y2=y1+h x2=x1+w

所以图片裁剪时应传入

face = face_detect.detectMultiScale(grey_img) # grey_img是灰度化之后的图像
    for x, y, w, h in face: # cropped_image即处理完的图像
        cropped_image = img[int(y):int(y + h), int(x):int(x + w)]

 即可精准裁剪出人脸

没想到做个项目还能给我复习复习坐标系的知识.

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值