목록프로그래밍 (43)
힘들면 쉬었다 가자.
안드로이드 개발은 물론 스마트폰을 써본적도 없는 1인입니다..-_-; 친구의 부탁도 있고 개인적으로 공부해 보고 싶어서 안드로이드 프로그래밍을 시작하게 되었는데요~ 처음 에뮬레이터를 실행시키는 것 부터 애를 먹었네요,, 다 제 성격이 급한 탓 입니다.. 혹시 안드로이드 개발환경 셋팅에 대한 정보를 찾으시나요? 그렇다면 김상형님의 winapi 사이트를 추천합니다. 여기를 클릭하면 해당 사이트로 이동합니다. 일단 프로젝트를 생성하고 디버깅을 하게 되면 에뮬레이터가 실행됩니다. 명령 프롬프트 창이 몇번 껌벅거리면서 떴다 사라졌다를 반복하면서 아래와 같은 에뮬레이터가 실행됩니다. ▲ 에뮬레이터를 실행하게 되면 처음 마주치게 되는 화면 전,, 여기부터 당황했습니다. 제가 직접 써본적은 없지만,, 아니 스마트폰을 ..
영상처리쪽을 한다면 아마 다들 아실텐데 뭐 어려운 개념은 아닙니다. Segmentation의 일종으로 볼 수 있을텐데.. 프로파일을 이용하면 영상내의 object들을 추출해 낼 수 있습니다. 차량 번호판을 예로 들어 설명을 하면,, 번호판내의 문자를 인식하기 위해서는 개별 문자들을 분리해 내야 합니다. - 이 개념이 segmentation 입니다. - 개별 문자들을 분리하기 위해서 우선 상단 문자열과 하단 문자열을 분리한후 나눠진 영상에서 다시 Vertical(수직) Projection Profile을 이용하여 개별 문자들을 추출할 수 있습니다. 위 그림은 Horizontal(수평) Projection Profile을 추출한 영상입니다. 영상에서 골(쑥- 꺼진부분)을 찾으면 상단 문자열과 하단 문자열을 ..
예전에 수업시간에 잠깐 언급되었던 부분인데.. 교수님께서 깊이 들어가기 싫어서 그러셨던건지.. 약간 좀 다르게 설명하신 부분이 있어서 한번 적어 봅니다. ------------------------------------- int i=1; while(i>0){ i++; } 위 소스는 무한 루프일까요?? 결론부터 말하자면 "아니다" 입니다. 왜 그럴까요?? 다음 소스를 돌려 봅시다. ---------------------------------------------------------- #include int main() { int i=1; while(i>0){ i++; } puts("이 문장이 출력되면 무한 루프가 아니겠죠??"); printf("i -> %d\n", i); return 0; } -----..
기능 : 10진수 -> 16진수 변환 16진수 -> 10진수 변환 16진수 입력은 0x를 포함해서 입력해도 무관합니다.
과제로 ls 프로그램을 만드는게 나와서 과제 하던 중.. " -l " 옵션을 구현할라고 하는데 출력 문자열의 필드 폭을 조절 run-time에 조절 해야 하더군요 리눅스에서의 구현은 출력 되는 각 필드의 문자열들 중에서 가장 폭이 넓은 녀석을 기준으로 폭을 잡아주도록 되어있었습니다. 그냥 C 프로그래밍 할 때는 소스 코드에 static하게 printf("%5d", some_value); 이런식으로는 많이 썼었는데.. run-time에 제어 할일은 별로 없어서 난감하더군요-_-;; 적절히 계산해서 공백문자를 계속 찍어줘야 하나.. 생각했는데 언어에서 지원을 해주네요..ㅋㅋ 아 뭐 서론이 길었고.. ------------------------------------------- 리눅스라면 man 3 print..
원문 보기 : http://dewitters.koonsolo.com/gameloop.html 이전글 보기 : 2011/03/01 - [프로그래밍/기타] - the game loop [1] - Koen Witters 가변적인(variable) FPS에 의존적인 게임 스피드 구현(Implementation) 게임 루프의 또다른 구현은 가능한한 빠르게 실행되도록 하고, FPS가 게임 스피드를 결정(dictate)하도록 하는 것이다. 게임은 이전 프레임의 시간차로 갱신된다. DWORD prev_frame_tick; DWORD curr_frame_tick = GetTickCount(); bool game_is_running = true; while( game_is_running ) { prev_frame_tick..
원문보기 : http://dewitters.koonsolo.com/gameloop.html 게임 루프(The Game Loop) 소개(Introduction) 게임 루프는 모든 게임의 핵심이다. 어떠한 게임이든 게임 루프 없이는 돌아갈 수 없다. 그러나 불행히도 신입 게임 개발자이 이 주제에 대해서 참조할 만한 좋은 글들이 인터넷에는 많지않다. 하지만 걱정하지 마시라, 당신은 지금 주의깊게 볼만한 게임 루프 관련글을 발견했기 때문이다. 게임 개발자라는 나의 직업에 고맙다. 나는 작은 규모의 수 많은 모바일 게임 코드들을 봐왔고 그것은 항상 나를 놀라게 했다. 얼마나 많은 게임 루프들이 그곳에 구현되어있는지.. 당신은 아마도 그렇게 간단한 것이 다르게 쓰여질 수 있는지 궁금해 할 것이다. 글쎄.. 그것은 ..
도서정보 자세히 보러가기(새창) 디자인 패턴 : 특정 컨텍스트 내에서 주어진 문제에 대한 해결책이다. 컨텍스트 : 패턴이 적용되는 상황으로 반복적으로 일어날 수 있는 상황이어야만 한다. 문제 : 그 컨텍스트 내에서 이루고자 하는 목적을 뜻합니다. 하지만 컨텍스트 내에서 생길 수 있는 제약조건도 문제에 포함됩니다. 해결책 : 바로 우리가 찾아내야 하는 것입니다. 누구든지 적용해서 일련의 제약조건 내에서 목적을 달성할 수 있는 일반적인 디자인을 뜻합니다. 객체지향 원칙 1. 애플리케이션에서 달라지는 부분을 찾아내고, 달라지지 않는 부분으로부터 분리시킨다. 2. 구현이 아닌 인터페이스에 맞춰서 프로그래밍한다. 3. 상속보다는 구성을 활용한다. 4. 서로 상호작용을 하는 객체 사이에서는 가능하면 느슨하게 결합하..
회사에서 usb도 안되고 메신저도 안되고 뭐,, 어지간한건 다 막아놨습니다. 업무적으로든 비업무적으로든 가끔 파일을 주고 받을 경우가 있어서 그냥 쪼그만 프로그램 만들어서 파일 옮기고 그럽니다. 근데, 언젠가 좀 큰 파일을 옮길라고 하니깐 이게 안되네요,, 문제가 뭐지?? 하고 봤더니 파일 크기가 2G가 넘어가면 파일 사이즈를 구하지 못하더군요,, 문제의 원인은 파일 사이즈를 fseek, ftell을 이용해서 계산을 했는데 리턴 타입이 long형이라서 그랬던 것 같습니다. 인터넷에 뒤져보니 뭐,, 금방 답 나오네요 일단 오늘의 테스트 파일 2.3G짜리 압축 파일입니다. 아래 코드는 fseek과 ftell을 이용한 파일 사이즈 구하기 입니다. 결과는 아래와 같습니다. -1을 리턴해 주네요,, GetFile..
컴퓨터에서 사용되는 RGB는 밝기에 민감하기 때문에 사람이 인지하는 색상과 차이가 있습니다. 영상처리를 위해서 RGB를 HSI포멧으로 변환하여 사용합니다. (이미지 출처가 어디였는지 잘 기억이 안나네요-_-;) 수학적인 표현으로 하면 위와 같습니다. 아래는 대략적인 유사코드 입니다. I = (R+G+B) / 3.0f if(그레이스케일){ S = 0.0 H = 0.0 } else{ S = 1.0f - (3.0f / (R+G+B)) * min(R, G, B) angle = (R - 0.5f * G- 0.5f * B) / (float)sqrt((R-G) * (R-G) + (R-B) * (G-B)); H = (float)acos(angle); H *= 57.29577951f // 각도값으로 변환(180/phi)..
Y = 0.29900R + 0.58700G + 0.11400B Cb = -0.16874R - 0.33126G + 0.50000B Cr = 0.50000R - 0.41869G - 0.08131B Y값은 NTSC 표준과 같네요
가장 간단한 방법으로 명암도 = 1/3*R + 1/3*G + 1/3*B 를 이용하여 구할 수 있습니다. 위 방법외에 NTSC(National Television System Committee) 표준인 명암도 = 0.299R + 0.587G + 0.114B 를 이용하여 구할 수도 있습니다. 사람이 녹색(G)에 민감해서 정해진 것이라고 하네요.
프로젝트 준비하면서 조사한 자료입니다. 오류사항이 있으면 알려주세요 RGB 모니터, 디스플레이장치 등에 사용되는 색상포멧으로 컴퓨터에 적합합니다. 색상 표현이 컴퓨터에게 용이하며, 많은 색상을 표현할 수 있습니다. R, G, B 각각의 상호 연관성이 심하다는 단점이 있습니다. CMY RGB의 보수개념으로 인쇄분야에서 많이 사용됩니다. 보통 검은색인 K가 추가되서 CMYK가 많이 사용됩니다. 인쇄분야에서 사용되는 색상포멧이기 때문에 영상처리용도로는 적합하지 않습니다. YCbCr TV에서 사용되는 방식으로 YUV는 아날로그, YCbCr은 디지털 방식입니다. Y값은 명도단계만은 CbCr은 색차보정(?)값을 갖기 때문에 흑백 TV에서도 별다른 연산없이 Y값만을 사용하여 화면을 출력할 수 있습니다. HSI (Hu..