C# OpenCV 강좌 : 제 51강 - 피부색 검출
피부색 검출(Skin Detector)
영상이나 이미지에서 피부색과 흡사한 픽셀들을 검출하는 알고리즘
입니다.
원본(Source, src)
은 영상이나 이미지를 사용합니다.
메인 코드
세부 코드
CvAdaptiveSkinDetector
함수를 사용하기 위해서는 네임스페이스에 using OpenCvSharp.CPlusPlus;
를 선언해야 사용할 수 있습니다.
결과용 이미지인 skin
과 계산용 이미지인 output
을 생성합니다.
detector
를 선언하여 피부색을 검출하기 위해 생성자
를 만듭니다. new CvAdaptiveSkinDetector(1, 모폴로지 연산 방법)
입니다.
첫 번째 인수는 samplingDivdier
를 의미하며, 1
의 값을 고정적으로 사용합니다.
-
MorphingMethod.*
: 모폴로지 연산 방법입니다.MorphingMethod.None
: 모폴로지 연산을 수행하지 않음MorphingMethod.Erode
: 모폴로지 침식만 적용MorphingMethod.ErodeDilate
: 모폴로지 침식 후 팽창 적용MorphingMethod.ErodeErode
: 모포롤지 침식 후 침식 적용
피부색 검출 알고리즘을 실행합니다. detector.Process(원본, 결과)
입니다. 원본
이미지에서 계산을 수행하며, 결과
이미지에 검출 결과를 저장합니다.
이중 for
문을 이용하여 이미지의 너비
와 높이
만큼 반복하여 모든 픽셀에 대해 검사합니다.
검출용 이미지
인 output
의 (x, y)
의 픽셀의 값이 흑색
이 아니라면, 피부색으로 가정합니다. Val0
는 첫 번째 엘리먼트 요소를 의미합니다.
if
문에 부합한다면 결과이미지 (x, y)
좌표의 색상을 초록색
으로 변경합니다.
댓글 남기기