계속적으로 외곽선에 대한 정리를 해보고 있습니다. 이전에 다뤘던 sobel이나 scharr 필터 같은 경우에는 미분 차수를 어떻게 하느냐에 따라서 결과값의 변화가 나타나는 것을 알 수 있었습니다. 그런데 Marr 라는 사람이 이런 방법 외에도 영상처리에 Laplacian을 적용할 수 있지 않을까 해서 1982년에 Vision이라는 책에 그 내용을 정리합니다. 보통 함수는 다음과 같이 구성됩니다.보다시피 2차 미분항들의 합으로 구성되어 있습니다. 이미지의 가로와 세로에 대한 그레디언트를 2차 미분한 값인 거지요. 사실 보면 거의 소벨 함수에서 xorder와 yorder를 2로 한 값과 유사할 거라고 여겨집니다. 실제로 내부를 들여다보면 다음과 같이 구현되어 있습니다. 중간에 Sobel에 관해서 접근하는 항..
키넥트의 큰 특징은 바로 사람의 관절 정보를 받아올 수 있다는 것이고, 그걸 활용하면 일종의 제스처를 만들어낼 수 있습니다. 가령 네비게이션을 할때 옆으로 밀어내는 동작을 취하면 페이지가 넘어간다던가 버튼의 역할을 해서 누르면 다른 이벤트가 발생하게 할 수 있지요. 지금까지 계속 그런 걸 해봤고 이번에도 그런걸 활용해서 프로젝트를 만들어보고자 합니다. 제목에서도 알수있다시피 키넥트를 통해서 기하학적으로 도형의 크기를 조절하는 것을 해볼겁니다. 역시 이전에 했던 것처럼 프로젝트를 재활용할 것이고 이번에는 이미지가 4개 사용됩니다. 받고 프로젝트에 추가하시면 됩니다. 물론 이전에 했던 건 필요없으니까 지우셔도 됩니다. 이렇게 이미지를 추가했으니까 그릇이 필요할 겁니다. 그에 대한 변수를 선언해주세요. 추가적..
지난 포스트에서 ScrollViewer가 어떤식으로 이용되는지를 간단하게 설명했습니다. 사실 WPF가 익숙한 사람이라면 여기서나 기존의 WP7에서도 이런 방식이 쓰였다는 것을 알 수 있을 겁니다. 이번에는 그 내용을 토대로 정리해보고자 합니다. 자 우선 프로젝트를 하나 생성하고 xaml상에서 다음과 같이 작성합니다. 지금은 전체적으로 폰트의 크기를 26으로 통일한 상태입니다. 지금은 ScrollViewer안에 딱하나 StackPanel만 들어가있습니다. 물론 그 안에 뭔가를 채우려면 어떤 개체가 있어야 하는 거 아니냐 할 수 있는데 굳이 개체를 삽입하지 않고라도 충분히 표현할 수 있습니다. 우선 안에 채울 내용으로 색상 정보에 대한 RGB 값을 16진수로 표현하는 것을 다뤄보고자 합니다. 이 내용은 또 ..
이전 포스트까지는 컴퓨터에서 아두이노로 데이터를 줘서 표현하는 방식을 했었습니다. 이제는 반대로, 아두이노로부터 데이터를 받아서 컴퓨터에 뿌려주는 것을 해보고자 합니다. 물론 이런 정보 교환이 이뤄져야 컴퓨터는 아두이노가 접해있는 환경에 대한 정보를 알 수 있을 것이고 그에 대한 반응을 표현할 수 있을겁니다. 이런 걸 일종의 피드백이라고 합니다. 사람도 꾹 찌르면 반응이 옵니다. 그리고 그에 대한 반응을 상대방에게 돌려줍니다. 물론 이런건 자연스런 현상이지만 기계의 세상에서는 이 피드백이라는 것을 정의하지 않는 한,사용자의 입력에 대한 반응을 내보이지 않습니다. 보통 이런 입력을 감지하는데 있어서 많이 사용하는 것이 스위치라는 겁니다. 스위치는 두가지 입력값을 줄 수 있습니다. 하나는 켜졌다는 의미의 1..
Powerpoint 2013을 사용하다 보니까 UI적으로 많이 개선된 흔적이 많이 보입니다. 페이지 이동시 기존의 딱딱한 느낌에서 약간의 슬라이드 느낌을 줘서 조금더 부드럽게 이동하네요. 오늘 새롭게 찾은 기능은 지난 작업시 작업했던 페이지로 쉽게 넘어갈 수 있는 책갈피 기능입니다. 포멧은 pptx에서만 제공되고기존의 office 2010에서 제가 경험하지 않은 것으로 보아서 이번에 새롭게 추가된 기능인 것 같습니다. 무슨 특정한 동작을 하거나 작업이 필요한 것이 아닙니다. 그냥 자유롭게 보다가 페이지를 종료하면 그걸로써 임시 책갈피가 저장된 겁니다. 예를 들어서 위와 같이 10페이지를 보고 있다가 다른 작업을 이유로 해서 종료를 했습니다. 물론 10페이지야 간단하게 넘기겠지만 작업을 몇백장 한 경우에는..
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)) 일단 서두에 등장하는 내용이나 들어가는 인자의..
앞에서 한창 아두이노와 프로세싱을 시리얼 통신을 통한 프로젝트를 진행했습니다. 이제는 시리얼 통신의 주체가 PC에서 넘어서서 키넥트로 바꾸는 것을 해봅니다. 기존의 아두이노 프로그램을 활용하고 이전에 사용했던 회로를 그대로 이용합니다. 물론 아두이노에 프로그램을 넣고 다른 것으로 수정하지 않았다면 그냥 회로만 구성하시면 됩니다. 이해가 안 가시는 분은 이전 포스트에서 확인하시기 바랍니다.2012/08/15 - [About Processing] - [Arduino with Processing] Serial-Controlled LEDs그러고 보니까 저도 회로도를 다시 구성해야 되네요.. 자 그럼 본격적으로 다뤄야 할 것은 아두이노가 아니라 키넥트입니다. 우리는 이전에 프로세싱에서 키넥트를 활용할 수 있는 방..
오랜만에 휴가를 갔다오고 다시 글을 쓰고 있습니다. 뭐든지 휴식이 필요한 것 같습니다. 이번 포스트에서 해볼 내용은 축구 게임입니다. 마찬가지로 발에 대한 Skeleton을 활용해서 공이 충돌했을 때에 대한 이벤트로 날아가는 걸 구현하는 겁니다. 물론 이전에 다뤘던 내용을 토대로도 충분히 구현하실 수 있습니다만 하나하나씩 해보도록 하지요. 마찬가지로 프로젝트는 기존 프로젝트를 계속 활용하고 이미지는 다음 것을 다운받아서 프로젝트에 추가하시기 바랍니다. 이번에는 손이나 기존의 이미지는 다 필요없으니까 딱 위의 이미지에 대해서만 변수를 선언해줍니다. 그리고 기존것과 마찬가지로 충돌이벤트를 하기 위해서는 각 점에 대한 위치를 알아야 하겠지요. 다음과 같이 변수를 선언해줍니다. 당연히 이미지에 대한 호출을 Lo..
- Total
- Today
- Yesterday
- Off-policy
- 파이썬
- Gan
- Kinect for windows
- TensorFlow Lite
- processing
- Policy Gradient
- reward
- End-To-End
- PowerPoint
- bias
- Kinect SDK
- Distribution
- Python
- windows 8
- 강화학습
- dynamic programming
- 한빛미디어
- ColorStream
- SketchFlow
- Pipeline
- Expression Blend 4
- DepthStream
- Variance
- arduino
- 딥러닝
- Windows Phone 7
- Offline RL
- RL
- Kinect
일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
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 |