test1.jpg
(실험할 이미지)
test1_result.jpg
(실험 결과)
#얼굴 인식 소스
import numpy as np
import cv2
from matplotlib import pyplot as plt
#->라이브러리 생성
#ㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡ
#얼굴과 눈 검출을 위한 haarcascade 파일 읽기, CascadeClassifier 객체 생성
face_cascade = cv2.CascadeClassifier('haarcascade_frontalface_default.xml')
#haarcascade 파일은 다운받아야 한다. (원하는 목록, eye, nose, face, body...)
#ㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡ
img = cv2.imread('test1.jpg')
gray = cv2.cvtColor(img, cv2.COLOR_BGR2GRAY)
#test1.jpg의 이미지를 불러들이고, 이미지를 흑백으로 바꿔준다
#이미지를 처리하는데에는 색깔이 필요없기 때문.
#ㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡ
#얼굴의 스케일을 조정한다.
#괄호안의 숫자를 바꾸면서 얼굴의 크기에따라 얼굴과 눈을 검출한다.
#괄호안의 숫자가 커질수록 작은 얼굴 감지할수있음
faces = face_cascade.detectMultiScale(gray, 1.9, 2)
"""
cv2.CascadeClassifier.detectMultiScale(image[, scaleFactor[, minNeighbors[,
flags[, minSize[, maxSize]]]]]) → objects
image 실제 이미지
objects [반환값] 얼굴 검출 위치와 영역 변수
scaleFactor 이미지 스케일
minNeighbors 얼굴 검출 후보들의 갯수
flags 이전 cascade와 동일하다 cvHaarDetectObjects 함수 에서
새로운 cascade에서는 사용하지 않는다.
minSize 가능한 최소 객체 사이즈
maxSize 가능한 최대 객체 사이즈
"""
#ㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡ
for (x,y,w,h) in faces:
cv2.rectangle(img,(x,y),(x+w,y+h),(255,0,0),2) # (R,G,B)의 명도
roi_gray = gray[y:y+h, x:x+w]
roi_color = img[y:y+h, x:x+w]
"""
roi = region of interest
cv2.rectangle(img, pt1, pt2, color[, thickness[, lineType[, shift]]]) → None
img 적용할 이미지
pt1 그릴 상자의 꼭지점
pt2 pt1의 반대편 꼭지점
color 상자의 색상
thickness 상자의 라인들의 두께 음수 또는 CV_FILLED를 주면 상자를 채운다.
lineType 라인의 모양 line()함수 확인하기
shift ?? Number of fractional bits in the point coordinates.
포인트 좌표의 분수 비트의 수??
"""
#ㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡ
cv2.imshow('img',img)
cv2.waitKey(0)
cv2.destroyAllWindows()
#imshow를 통해 이미지를 출력한다., waitKey()에서 k는 꼭 대문자로 써야함.
#ㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡ
'코딩이것저것' 카테고리의 다른 글
| CNN_multi-variable linear regression (0) | 2017.07.31 |
|---|---|
| CNN_Linear Regression의 cost 최소화 알고리즘의 원리 설명 (0) | 2017.07.31 |
| CNN_Logistic Classification의 가설 함수 정의 (0) | 2017.07.31 |
| openCV_영상파일에서 얼굴 감지하기 (0) | 2017.07.28 |
| openCV_웹캠영상에서 얼굴 인식하기 (0) | 2017.07.28 |