지난 포스트에선 단순히 Tap 이벤트를 써보는 걸 해봤었는데 이번에는 그걸 조금 응용해봅시다. 우선 들어가기에 앞서서 xaml 코드를 보면 VerticalAlignment니 HorizontalAlignment가 요소에 들어가 있는 걸 보셨을텐데 이건 전체를 감싸고 있는 Grid내에서 해당 요소의 위치를 임의로 배졍하는 역할을 합니다. 한번 차례대로 볼까요? 여기서 Stretch를 제외한 모든 조건을 적용해서 Grid상에서 각 요소가 어디에 위치해 있는지를 확인해보겠습니다. 폰트 사이즈만 적절히 조절한다면 위와 같은 결과를 얻을 수 있을 겁니다. 그런데 한가지 궁금한 점! 만약 TextBlock을 선택했을 때 색상이 변하게 하려면 어떻게 할까요? 지난 시간에 했던 것처럼 하자니 TextBlock마다 이름을..
올해 시도한 큰 것 중 하나가 바로 Imagine Cup이었습니다. 2007년에 처음 안 세계 대회를 이렇게 참여도 해보고 나름대로 의미가 있었던 것 같습니다. 물론 결과가 좋지는 않았지만 그래도 뭔가에 도전한다는 것, 세상의 난제에 대해서 조금 고민을 해보고 해결할려고 노력했다는 데 큰 의미를 두고 싶습니다. 오지랖이 넓어서 이것저것 시도했었는데 참 이런 Certification으로 나옵니다. 그런데 단지 한장의 종이로만 남지 않습니다. 이런 경험은 단순히 종이 한장으로 표현하기에는 너무 큰 과정 중 하나였습니다. 귀찮고 어렵고 힘들다고 포기하려던 순간에도 옆에 누군가가 있다는 걸 느끼게 해준 좋은 기회였었습니다. 물론 기존의 삶속에서는 그런 걸 느끼기가 참 힘듭니다. 누군가의 도움을 받는다는 것.. ..
Point Cloud라는 걸 들어보셨나요? 흔히 키넥트로는 사물을 2차원적인 Depth나 RGB로만 받을 수 있습니다. 물론 외부적으로 라이브러리를 써서 이를 3D로 매핑해주는 것도 있습니다. 그런 라이브러리 중 하나가 바로 이번 포스트에서 소개해드릴 Point Cloud라는 겁니다. 쉽게 설명하면 하나의 점군이라고 보시면 됩니다. 점군이니까 각각의 점마다 3차원적 좌표가 나타나고 거기에 실제의 RGB값들이 대입되게 되는 것이지요. 기존에 OpenCV나 OpenNI 설치를 충분히 따라오셨다면 이번 설치도 별반 차이가 없습니다. 그냥 Linker 연결이나 include 폴더, lib 목록 작성이 다 입니다. 참고로 이 PCL은 OpenNI 기반으로 동작합니다. 앞에서 소개했던 브릿지 드라이버를 사용해도 되..
문득 키넥트가 Depth를 어떻게 인지하고 있는지에 대한 궁금증이 생겼습니다. 물론 IR을 사용해서 키넥트가 그 값으로 사람의 깊이를 인지한다는 것을 알고 있었지만 그 원리가 정확히 어떤 건지에 대해서는 잘 몰랐습니다. 그래서 테스트를 해보았습니다. 우선 키넥트와 같은 Depth Camera는 여러가지 방식이 있습니다. 그중에 ToF라고 하는 방식이 있는데 이건 Time of Flight의 약자로써 흔히 IR이 움직이는 시간을 감지해서 Receiver가 받은 시간과 비교해 그 값으로 깊이를 인지하는 방식입니다. Soft Kinect나 파나소닉 D-Imager 같은 카메라가 이 ToF 방식을 취하고 있고 단순히 거리만 측정하는 알고리즘이 적용되기 때문에 간단하고 빠릅니다. 그리고 매우 단순하지요. 단점이 ..
Metro Style은 터치에 최적화된 UI구조입니다. 기존의 마우스와 같은 기기기반에서 벗어나 사람과 기기가 직접적으로 접촉하는 하나의 혁명이 아닐까요? 물론 기존에 터치를 활용한 기기는 많이 나와있었습니다. 특히 와콤 타블렛이나 애플 매직패드 같은 경우도 그런 일종이 아니었나 싶습니다. 하지만 이번처럼 모든 사용이 터치로 이용가능하고 타겟도 이동성을 고려한다는 측면에서 MS가 조금 새로운 도전을 하고 있는 건 아닐까 싶습니다. 우선 오늘 소개해드릴 내용은 이런 터치로 만들 수 있는 이벤트 중 가장 기본적인 Tap 이벤트에 대한 언급을 해보고자 합니다. 탭이라는 건 말 그대로 무언가를 건드린다 라는 뜻입니다. 그런데 여기에도 조건을 여러가지로 부여할 수 있습니다. 우선 탭하기 전과 탭한 순간까지의 시간..
혹시 제가 이 파트에서 제일 처음으로 쓴 글을 아시는 분이 계실까요? 그냥 무작정 썼던 글이 바로 RGBDemo라는 프로그램에 관한 글이었습니다. 그때가 올해 1월이었는데 벌써 7월이 오는군요. 오늘 소개해드릴 프로그램은 그 RGBDemo를 만들었던 manctl에서 만든 Skanect라는 겁니다. 사실 이 Skanect는 오픈소스 라이브러리인 Point Cloud Library를 기반으로 동작합니다. 그리고 내부 dll 파일을 보시면 알겠지만 내부적으로 OpenCV 라이브러리도 사용된 것을 확인할 수 있습니다. 우선 공식 사이트에서 언급하는 Skanect의 기능입니다. 보시면 아시겠지만 전체적으로 실시간 모델링을 해주는 역할을 하고 있습니다. 제작사에서는 이 기능을 3D scanner라고 언급하고 있습니..
계속된 예제 복습입니다. 이번 포스트에서 다룰 내용은 Button을 StackPanel상에 집어넣어서 애니메이션 효과를 줘보려고 합니다. 우선 애니메이션을 사용하려면 Storyboard를 잘 다룰줄 알아야 합니다.물론 이전 포스트들을 계속 지켜봤다면야 금방할 겁니다. 이번 시간의 주제는 버튼을 눌렀을 때 포인트가 되는 원이 자신이 원하는 방향으로 움직이게끔 하는겁니다. 하나씩 따라해봅시다. 일단 Wpf Applicaiton으로 Animation이란 프로젝트를 하나 생성합니다. 그리고 Grid를 하나 임의로 생성한 후 그 안에 Rectangle과 TextBlock을 하나 삽입해줍니다. 뭐 쉬운 방법으로 Rectangle과 TextBlock을 Grid로 묶는 방법이 되겠지요. Object 창에서는 다음과 같..
지난 포스트에선 워낙 뻘짓을 많이 했습니다. 거기에도 언급을 했었지만 굳이 64bit에서만 동작시킬 것이 아니라면 64bit용 옵션을 따로 지정할 필요가 없습니다. 그냥 인터넷에 공개되어 있는 OpenCV 연동 방법을 사용하면 됩니다. 자 이제 할것을 찾아보니 OpenNI와 OpenCV를 같이 사용하는 방법을 소개하고자 합니다. 사실 OpenCV 2.4.1부터는 OpenNI지원 라이브러리가 아예 포함되어 있습니다. 따라서 그 라이브러리와 해당 Example코드를 사용하려면 cmake를 사용해서 추가하면 됩니다. 참고는 http://docs.opencv.org/doc/user_guide/ug_highgui.html 여기의 내용을 참고해서 작성합니다. 자 우선 OpenCVBuild라는 폴더와 test폴더를 ..
오랜만에 다시 글을 남겨봅니다. 이번 포스트에서 다뤄볼 내용은 버튼 이벤트를 통한 음원 재생과 동영상 재생에 대한 겁니다. 물론 기본적인 WPF 지식만 있으면 충분히 구현됩니다. 페졸드씨의 Programming Windows 에서도 Hello Windows 다음 내용으로 몇 줄에 걸쳐서 간단하게 음원 재생을 하는 방법에 대해서 다루고 있습니다. 우선은 그 내용부터 살펴보겠습니다. 메트로 스타일 또는 WPF 용 어플에서 미디어를 재생하려면 MediaElement라는 개체를 사용합니다. 페졸드씨의 예제를 그대로 가져오겠습니다. 기존 CP 상에서는 MediaPlayer를 사용할 수 있게되었는데 RP로 넘어오면서 MediaPlayer는 WPF 데스크탑 용 어플을 만들때만 쓸 수 있는 요소가 되었고 메트로 스타일..
지난 포스트에서는 프로세싱을 통해서 받은 이미지에서 각각의 RGB값을 취하는 것에 대해 알아봤습니다. 실제로 기본적인 코드를 바탕으로 2~3줄 정도 추가해준 것에 비해 얻을 수 있는 정보가 늘어나지요. 코드 자체도 어렵지 않고요. 이번에 해볼 내용은 SimpleOpenNI 라이브러리에서 제공하는 depthmap 속성을 이용해서 DepthImage로부터 사용자까지의 거리를 구하는 식을 구해보고자 합니다. 전체적인 형식은 전의 코드와 비슷합니다. 우선은 라이브러리를 추가해주고 SimpleOpenNI형 자료형을 선언해줍니다. 그 후에 다음과 같이 코드를 구성해봅니다. 자 이제 mousePressed부분을 채워야 하는데 고려해볼 사항이 있습니다. 전 시간에 잠깐 말한 바로는 키넥트가 컴퓨터로 데이터를 넘길때는 ..
다시 돌아온 프로세싱입니다. 이번 포스트에서 해볼 내용은 마우스로 특정 포인트를 찝었을 때 그 픽셀의 RGB값을 구하는 어플입니다. 지난 포스트에서는 draw라는 함수를 통해서 해당 윈도우에 Depth와 Color를 출력하는 것을 구현했었는데 이번 것도 거의 비슷합니다. 다만 마우스를 클릭했을 때의 함수가 필요한데 프로세싱에서 참 편리하게도 그냥 mousePressed라는 함수를 가지고 있습니다. 그래서 기존 함수를 그대로 이용하면서 해당 코드만 가져오겠습니다. 모르시는 분을 위해서 간단하게 설명하자면 우선은 Setup부분에서 Kinect에서 필요한 기능을 다 불러와야 합니다. 마치 장치를 initialize시키는 것처럼 말이죠. 이런 구조는 보통 게임 구현시 나타납니다. 그도 그럴것이 Processin..
마침 Kinect for Windows가 두대 있어서 집에서 테스트해봤습니다. 프로그래밍할 시간은 없었고 가장 기본적인 Kinect Explorer를 통해서 동시에 작동하는지를 테스트해봤습니다. 배치는 다음과 같이 구성되어 있습니다. 사실 제가 테스트 해보려는 건 사람을 중심으로 키넥트 두대를 90도 간격으로 띄워 놓아서 서로 다른 점을 매핑할 수 있는지의 여부인데 가능할까요? 제 생각은 뒤에서 말씀드려보겠습니다. 아무튼 위와 같이 해서 연결하면 장치관리자는 다음과 같이 장착됩니다. 위와 같이 두대가 동시에 장치로 인식됩니다. 공식적으로 언급된 바는 없지만 아마 usb포트가 여력이 된다면 추가적으로 장착이 가능할 것 같습니다. 그리고 지금은 브릿지 드라이브를 설치한 상태임에도 정상적으로 인식하는 것이 확..
6월 30일에 진행되었던 Windows 8 코딩 캠프에 나온 Expression Blend 예제입니다. 한번 예제를 통해서 다시 들어가 보겠습니다. 저번과 마찬가지로 WPF Application으로 KeyPad라는 이름의 프로젝트를 생성합니다. 우선은 휴대폰에서 뜨는 키패드를 만들어보고자 합니다. 그런데 그러기에는 기본 MainWindow가 커보입니다. 그래서 Object 창에서 Window를 선택한 상태에서 크기를 적당히 조절해봅니다. 키패드니까 Height이 큰 방향으로 지정해주면 좋겠지요. 그러고 나서 해당 LayoutRoot안에 Grid를 삽입합니다. 방식은 화면 우측에 보이는 ToolBox내에서 위와 같은 Grid를 선택한 후 더블클릭을 해주면 Object 창에 삽입이 됩니다. 다만 크기가 처음..
[ WindowsPhone Building WP7! ] WEB 2012년 07월호 [이미지나 제목을 선택하시면 전용뷰어로 기사가 열립니다.] Powered by 'http://www.moazine.com 글 강찬석 talkingaboutme.tistory.com 운영자 Microsoft Student Partner 5기 Student Evangelist kcsgoodboy@naver.com 페이스북: /kcsgoodboy Internet Explorer에 최적화되어 있습니다.
6월 30일에 진행한 첫번째 예제는 바로 Grid Splitter를 사용한 Grid 분리입니다. 예시를 통해서 따라가도록 하겠습니다. 우선 Splitter라는 말에서 알 수 있듯이 Grid Splitter란 Grid간의 분리를 쉽게해주는 하나의 컨트롤입니다. 가장 큰 특징이 바로 사용자가 어플상에서 Grid 간격을 다시 해줄 수 있다는 것이지요. 우선 Blend상에서 WPF Application으로 Grid Splitter라는 이름으로 프로젝트를 하나 생성합니다. 가운데에 이런 MainWindow가 있을 겁니다. 우리는 이 것을 하나의 표라고 볼 수 있습니다. 즉 Row가 1 Column이 1인 하나의 표인 겁니다. 여기에 어떤 도구를 사용한다면 한개의 표를 분리할 수가 있습니다. 상단과 좌측에 있는 두..
- Total
- Today
- Yesterday
- windows 8
- RL
- Pipeline
- Kinect
- 강화학습
- End-To-End
- arduino
- Distribution
- TensorFlow Lite
- 파이썬
- 한빛미디어
- 딥러닝
- DepthStream
- ColorStream
- Kinect for windows
- PowerPoint
- dynamic programming
- reward
- ai
- Kinect SDK
- bias
- SketchFlow
- Expression Blend 4
- Gan
- Offline RL
- Variance
- processing
- Off-policy
- Windows Phone 7
- Policy Gradient
일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
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 |