Last active
December 19, 2015 14:58
-
-
Save ozw-sei/5972718 to your computer and use it in GitHub Desktop.
Skindetecter
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
| #coding:utf-8 | |
| import cv | |
| import cv2 | |
| import sys | |
| filename = sys.argv[1] | |
| input_img = cv.LoadImage(filename) | |
| # HSVImages | |
| HSVImage = cv.CreateImage(cv.GetSize(input_img),cv.IPL_DEPTH_8U,3) | |
| HImage = cv.CreateImage(cv.GetSize(input_img),cv.IPL_DEPTH_8U,1) | |
| SImage = cv.CreateImage(cv.GetSize(input_img),cv.IPL_DEPTH_8U,1) | |
| VImage = cv.CreateImage(cv.GetSize(input_img),cv.IPL_DEPTH_8U,1) | |
| # sub | |
| HSVImagePro = cv.CreateImage(cv.GetSize(input_img),cv.IPL_DEPTH_8U,3) | |
| HImagePro = cv.CreateImage(cv.GetSize(input_img),cv.IPL_DEPTH_8U,1) | |
| SImagePro = cv.CreateImage(cv.GetSize(input_img),cv.IPL_DEPTH_8U,1) | |
| VImagePro = cv.CreateImage(cv.GetSize(input_img),cv.IPL_DEPTH_8U,1) | |
| # mask image | |
| MaskImage = cv.CreateImage(cv.GetSize(input_img),cv.IPL_DEPTH_8U,1) | |
| # dispImage | |
| dispImage = cv.CreateImage(cv.GetSize(input_img),cv.IPL_DEPTH_8U,3) | |
| #HSVに変換 | |
| cv.CvtColor(input_img,HSVImage,cv.CV_BGR2HSV) | |
| #H , S , V 成分へ分解する | |
| cv.Split(HSVImage , HImage , SImage , VImage , None) | |
| #スレッショルドで肌色領域を抽出 | |
| cv.Threshold(HImage , HImagePro , 20 , 255 , cv.CV_THRESH_BINARY_INV) | |
| cv.Threshold(SImage , SImagePro , 51 , 255 , cv.CV_THRESH_BINARY) | |
| cv.Threshold(VImage , VImagePro , 0 , 255 , cv.CV_THRESH_BINARY) | |
| #論理積でマスク画像の作成 | |
| cv.And(HImagePro , SImagePro , MaskImage) | |
| cv.And(MaskImage , VImagePro , MaskImage) | |
| #マスク画像のノイズを消す | |
| cv.Erode( MaskImage , MaskImage , None , 1) | |
| cv.Dilate( MaskImage , MaskImage , None , 2) | |
| cv.Erode( MaskImage , MaskImage , None , 1) | |
| #最終出力画像をゼロクリア | |
| cv.Zero(dispImage) | |
| #マスクをかけた入力画像を作成 | |
| cv.Copy( input_img, dispImage , MaskImage) | |
| cv.ShowImage("input_imgput",dispImage) | |
| cv.ShowImage("H",HImagePro) | |
| cv.ShowImage("S",SImagePro) | |
| cv.ShowImage("V",VImagePro) | |
| cv.ShowImage("Mask",MaskImage) | |
| while(True): | |
| cv.WaitKey() |
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment