Learning OpenCV에 보면 sobel 미분에 세부 내용으로 scharr 필터에 대한 내용이 들어가 있습니다. 지난 포스트에서 언급하기로는 소벨 미분은 각 축에 대한 미분을 실시해서 다항식을 근사화시킨 결과라고 했습니다. 물론 기존의 복잡한 다항식에서 근사화시킨 결과이기 때문에 연산속도의 측면에서 빠를 수 있겠지만 문제는 근사화 과정에서 손실되는 표본의 정보가 많을 수도 있다는 겁니다. 이 때 인자로 사용되는 aperture_size를 크게 하면 커널의 크기가 커져서 이런 문제를 해결할 수 있습니다. 그 와중에 aperture_size에 집어넣을 수 있는 값 중 하나가 바로 Scharr filter, 즉 CV_SCHARR 라는 값입니다. 기존의 3x3 sobel operator가 라고 정의된다면 ..
지난 포스트에서는 Threshold값을 조절함으로써 이미지의 경계값을 추출하는 예제를 해봤습니다. 그런데 사실은 그런 방법이외에도 여러가지 경계 추출법이 있습니다. 그중 하나가 이번 포스트에서 등장하는 Sobel derivative 입니다. 사용 방법은 다음과 같습니다.void cvSobel(const CvArr* src, - sobel 처리를 하려는 원래 IplImageCvArr* dst, - 처리한 결과를 담는 IplImageint xorder, - x방향으로 어느 차수만큼 미분할 것인가int yorder, - y방향으로 어느 차수만큼 미분할 것인가int aperture_size - 마스크의 크기 (aperture_size * aperture_size)) 일단 서두에 등장하는 내용이나 들어가는 인자의..
배경 제거 방식을 통해서 손만 검출할 수 있으니까 이제 할려고 하는 일이 손의 edge를 따는 일입니다. 그중 나온지는 오래되었지만 가장 대중적이고 많이 쓰이는 방식인 Canny edge Detection을 공부하고 있습니다.- 원 본 - Canny Edge Detector는 기본적으로 그레이스케일화 된 이미지만을 처리할 수 있습니다. 물론 최근 버전에서는 Color에서도 Edge Detection이 되게 하는 방법도 제시되고 있는데 아직까지는 Color Image를 그레이스케일로 convert 시킨후, 혹은 IPL_DEPTH_8U를 통해서 한개의 채널로만 이미지를 형성해서 edge를 감지합니다. 위의 원본도 그런 형식이지요. cvCanny의 함수는 다음과 같이 사용됩니다.cvCanny(const CvA..
지난 포스트에서 간략하게 소개했다시피 간단하게 ColorStream을 뿌리는 방법에 대해서 언급해보고자 합니다. 가장 간단하게 코드를 보는 방법은 바로 Kinect for Windows SDK v1.5의 Developer Toolkit에 들어있는 Color Basics Sample을 보면 됩니다. 해당 코드가 어디있는지 모르시는 분이라면 다음 버튼을 눌러서 설치하시면 됩니다. 자신이 원하는 경로에 설치하면 그에 해당하는 C++ 코드 프로젝트를 살펴볼 수 있습니다. 하지만 장담합니다만 보기가 참 어렵습니다. 그래서 다른 분이 만드신 코드를 활용해서 ColorStream을 OpenCV를 활용해서 내보내는 방법을 소개하고자 합니다. 당연한 말입니다만 이전의 준비과정은 다 하신 후에 진행하셔야 합니다.출처: h..
여러분 키넥트 개발 열심히 하고 계신가요?저도 요새 한창 키넥트 개발 공부를 하면서 제 자신이 부족한 걸 알고 열심히 공부하고 있습니다. 한가지 질문드려보겠습니다. 여러분은 키넥트를 뭘로 개발하시나요? 키넥트 SDK는 C++ / C# / VB에서의 개발을 지원합니다. 그 중 MS에서 중점적으로 자료를 내놓고 있는 부분은 C# / VB 파트입니다. 당연히 C# / VB은 MS에서 만든 .net Framework을 기반으로 돌아가기 때문에 MS에서도 이에 대한 지원을 강화하고 교육 자료도 많이 내놓고 있습니다. 그런데 개발을 어느정도 해보신 분은 아시겠지만 이 C#에서도 한계가 있는 걸 느끼실 겁니다. 지금 소개해드리는 OpenCV나 Point Cloud 같은 Open source 라이브러리들이 보통은 C#..
아마 키넥트를 관심있어 하시는 분이라면 컴퓨터 비전을 접목시켜야 하겠다는 생각을 하실거고 당연히 OpenCV를 어떻게 적용시켜야 할까 하시는 분이 계실겁니다. 저 또한 그럴려고 노력하는 사람 중에 하나이고요.그런데 문제는 여기서 발생합니다. OpenCV는 다들 알다시피 c++ 기반의 라이브러리입니다. 그래서 필요한 라이브러리 파일과 dll, include 파일을 일일이 설정해줘야 한다는 불편함이 있습니다. 그에 비해서 키넥트는 .net 기반의 자료들이 무척 많습니다. 물론 C++ 기반의 코딩도 가능하지만 실제로 검색해보면 자료가 거의 없는 걸 보실 수 있을 겁니다. 아무튼 키넥트에 비전을 접목시키려면 Kinect를 C++로 개발을 하던가 아니면 OpenCV를 C# .net으로 처리하던가의 방법을 택해야 ..
Point Cloud라는 걸 들어보셨나요? 흔히 키넥트로는 사물을 2차원적인 Depth나 RGB로만 받을 수 있습니다. 물론 외부적으로 라이브러리를 써서 이를 3D로 매핑해주는 것도 있습니다. 그런 라이브러리 중 하나가 바로 이번 포스트에서 소개해드릴 Point Cloud라는 겁니다. 쉽게 설명하면 하나의 점군이라고 보시면 됩니다. 점군이니까 각각의 점마다 3차원적 좌표가 나타나고 거기에 실제의 RGB값들이 대입되게 되는 것이지요. 기존에 OpenCV나 OpenNI 설치를 충분히 따라오셨다면 이번 설치도 별반 차이가 없습니다. 그냥 Linker 연결이나 include 폴더, lib 목록 작성이 다 입니다. 참고로 이 PCL은 OpenNI 기반으로 동작합니다. 앞에서 소개했던 브릿지 드라이버를 사용해도 되..
지난 포스트에선 워낙 뻘짓을 많이 했습니다. 거기에도 언급을 했었지만 굳이 64bit에서만 동작시킬 것이 아니라면 64bit용 옵션을 따로 지정할 필요가 없습니다. 그냥 인터넷에 공개되어 있는 OpenCV 연동 방법을 사용하면 됩니다. 자 이제 할것을 찾아보니 OpenNI와 OpenCV를 같이 사용하는 방법을 소개하고자 합니다. 사실 OpenCV 2.4.1부터는 OpenNI지원 라이브러리가 아예 포함되어 있습니다. 따라서 그 라이브러리와 해당 Example코드를 사용하려면 cmake를 사용해서 추가하면 됩니다. 참고는 http://docs.opencv.org/doc/user_guide/ug_highgui.html 여기의 내용을 참고해서 작성합니다. 자 우선 OpenCVBuild라는 폴더와 test폴더를 ..
[2012.7.3] 최신 버전이 2.4.1로 업데이트 되었습니다. 따라서 최신판을 설치하시는 분이라면 라이브러리를 240에서 241로 바꾸어서 첨부시켜야 합니다. 아울러 다음 포스팅은 64bit에서도 동작하는 어플리케이션을 만들고자 함에서 작성한 포스트이기에 단순히 32bit 운영체제를 타겟으로 하시는 분이라면 이 부분은 스킵하시면 좋을 것 같습니다. --------------------------------------------------------------------------------------------------------------- 키넥트를 공부하다 보니까 단순히 키넥트로만 성능이 좋은 어플리케이션을 구현하기가 참 힘듭니다. 특히 손가락 인지같은 기능은 키넥트 공식 SDK에서는 제공하지 ..
- Total
- Today
- Yesterday
- Expression Blend 4
- arduino
- ColorStream
- End-To-End
- Gan
- 파이썬
- dynamic programming
- Kinect SDK
- Distribution
- Kinect for windows
- 딥러닝
- DepthStream
- TensorFlow Lite
- Kinect
- RL
- Windows Phone 7
- bias
- 한빛미디어
- Policy Gradient
- Offline RL
- windows 8
- Variance
- ai
- SketchFlow
- Pipeline
- 강화학습
- processing
- PowerPoint
- reward
- Off-policy
일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
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 |