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

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

案例

opencv 人脸识别 图像裁剪参数详解_第1张图片

opencv 人脸识别 图像裁剪参数详解_第2张图片

将图像扣成下图代码如下 

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)]

 即可精准裁剪出人脸

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

你可能感兴趣的:(opencv,计算机视觉,人工智能)