티스토리 뷰
배경 제거 방식을 통해서 손만 검출할 수 있으니까 이제 할려고 하는 일이 손의 edge를 따는 일입니다. 그중 나온지는 오래되었지만 가장 대중적이고 많이 쓰이는 방식인 Canny edge Detection을 공부하고 있습니다.
- 원 본 -
Canny Edge Detector는 기본적으로 그레이스케일화 된 이미지만을 처리할 수 있습니다. 물론 최근 버전에서는 Color에서도 Edge Detection이 되게 하는 방법도 제시되고 있는데 아직까지는 Color Image를 그레이스케일로 convert 시킨후, 혹은 IPL_DEPTH_8U를 통해서 한개의 채널로만 이미지를 형성해서 edge를 감지합니다. 위의 원본도 그런 형식이지요.
cvCanny의 함수는 다음과 같이 사용됩니다.
cvCanny(
const CvArr* image, ---- 원본의 이미지
CvArr* edges, ---- 엣지를 추출한 결과물
double threshold1, ---- low Threshold
double threshold2, ---- high Threshold
int aperture_size ---- 필터의 크기
);
여기서 밑의 결과물이 나타내는 것은 low 임계값과 high 임계값을 변화시켰을 때 엣지를 얼마나 잘 탐지할 수 있나를 확인해보고자 하는 예제였습니다. 원리는 필터가 이동하면 픽셀의 그레디언트가 high 값보다 크면 엣지, low보다 작으면 엣지가 아니라고 인식합니다. 만약 값이 high와 low 사이에 있으면 그 주위에 엣지가 있는지 확인한 후에 있으면 엣지라고 인식하는 거지요.
- High Threshold 값을 수정했을 때 변화 -
- low Threshold 값 수정했을 때 변화 -
변화가 느껴지시나요? 결론적으로 이 high값과 low 값을 적절하게 수정한다면 딱 사람의 테두리만을 뽑아낼 수 있을겁니다. 대신 high값을 무지막지 하게 크면 진짜 왠만해서는 엣지로 안 뽑히겠지요.
이걸 지금하는 이유는 다음을 테스트하려는 목적이었습니다.
사람의 손도 폐곡선을 이루는 이상 여러개의 엣지들이 나타날겁니다. 이때 high값과 low값을 적절히 수정한다면 딱 finger Tip에 맞는 이미지가 나오지 않을까요? 어차피 fingerTip 또한 손을 구성하는 모양중에서도 하나의 엣지일테니까요. 물론 여기다가 여기다가 기존의 손이 나오는 Frame을 Mask만 잘한다면 손이미지만 빼는 건 쉬운 일이 될거라고 생각합니다. 제가 잘 몰라서 하는 이야기 일수도 있습니다 ;;
'OpenCV' 카테고리의 다른 글
[OpenCV] Laplacian 함수 (0) | 2012.08.27 |
---|---|
[OpenCV] Scharr filter (0) | 2012.08.23 |
[OpenCV] sobel 미분을 통한 edge extraction (2) | 2012.08.21 |
[Kinect with OpenCV] Contour Extraction (0) | 2012.08.07 |
[Kinect with OpenCV] C++로 만들어보는 이미지 호출 (9) | 2012.08.06 |
[Kinect with Opencv] Background Subtraction (8) | 2012.08.02 |
[Kinect with OpenCV] C++로 개발하는 Kinect 준비과정 (6) | 2012.08.02 |
- Total
- Today
- Yesterday
- Pipeline
- Variance
- Kinect for windows
- ColorStream
- Kinect SDK
- arduino
- Distribution
- Kinect
- 딥러닝
- 한빛미디어
- reward
- Offline RL
- bias
- TensorFlow Lite
- SketchFlow
- 강화학습
- windows 8
- dynamic programming
- Windows Phone 7
- Gan
- Expression Blend 4
- End-To-End
- processing
- RL
- ai
- Policy Gradient
- Off-policy
- DepthStream
- PowerPoint
- 파이썬
일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | 3 | 4 | 5 | 6 | 7 |
8 | 9 | 10 | 11 | 12 | 13 | 14 |
15 | 16 | 17 | 18 | 19 | 20 | 21 |
22 | 23 | 24 | 25 | 26 | 27 | 28 |
29 | 30 | 31 |