본문 바로가기

Project

영상 속도가 느린 이유 이틀동안 영상 속도가 느려서 고민했는데, 정말 뜻밖의 곳에서 해결책을 찾았다. 필터링을 하면서 많이 느려졌고, Thread 보다는 OnTimer로 호출하는게 더 빨랐다. 그리고 이진화 할때 YCbCr값 중에서 Y값은 설정을 안했는데, 같이 설정해주니까 (당연히) 색깔 검출이 잘 되었다. 지금 화면이 팽창->침식->팽창 연산만 하고 라벨링 이라던지 열림 연산이라던지 다 뺐다. 어차피 마커가 인쇄된 흰 종이를 수직으로 비추면서 시연할테니까, 이런 필터링들이 없어도 깨끗하게 잘 추출하더라. 이제 좌표값 얻어와서 포인트 잡아주는 일 남았구나. void CameraManager::AddEffect () { IplConvKernel *element = cvCreateStructuringElementEx(2, 2, .. 더보기
영상처리를 이용한 붉은색 검출 우선 붉은 색 검출에 성공을 하긴 했는데 속도가 느리다. 한눈에 '느리다' 라는 느낌이 든다. OnPaint 함수를 사용해서 OpenCV관련 처리들을 해주는데, OnPaint함수 특성상 계~속 호출이 되기 때문에 발생하는 현상같다. 이제 코드를 모두 Thread화 시키는 작업을 하고, 색 추적 구현을 해야겠다. void CameraManager::FindRedColor (CDC** pDC_YCbCr, CStatic *yCbCrCam) { CRectrect; int x, y; this->camera.Create_ipl_YCbCr_Image(); this->camera.Create_ipl_bin_Image(); this->camera.Create_RGB_Image(); this->camera.Create_Y.. 더보기
AR을 이용한 사천성 알 출력 사천성 판이 4x4라면, 마커가 16개가 필요한게 아닌가 라는 생각을 했었다. 마커를 여러개 사용해 버리면 인식률 문제도 있고, 조작함에 있어서 마커를 가려버릴 경우에도 문제가 생겨서 어떻게 할지 고민을 많이 했었는데 뜻밖에도 마커 하나에 배열을 이용하여 여러개를 띄울수도 있었다! 배열을 사용하기 때문에 각 배열칸 별로 이벤트도 줄수 있을꺼라 생각한다. (아직 시도를 안해봐서 장담은 못하겠다.) 일단 OpenGL로 알을 드로잉 했는데, 여기서 좀 더 다듬으면 그럴듯한 사천성 판을 출력할수 있을듯 하다. 더보기
RGB->YCbCr->이진화 우선 설 전날, PlayGameForm에 OpenCV 변수들을 다 때려 박아 넣었던 걸레같은 소스를 수정했다. 다시 차근차근 Class화를 시도한 결과, 성공ㅋ 그렇게 삽질할땐 안되더니ㅠ 설 당일은 좀 쉬고, 오늘 다시 YCbCr로 변환하고 이진화를 시키려고했더니, 역시 만만치 않았다. OpenCV고수들은 걍 뚝딱 하겠지?ㅠ 우선 YCbCr로 변환하는건 확실히 성공했는데, 이진화가 된 영상이 [YCbCr->이진화] 로 된건지, 바로 그냥 [RGB->이진화] 가 된건지 헛갈린다-_- 그리고 영상이 살짝 뚝뚝 끊기는 느낌도 들고, 메모리 체크를 해 봤더니, 들쑥날쑥한다. 계~~속 오르기만 하면 메모리 누수가 확실하지만, 이렇게 들쑥날쑥 하는 경우는 당췌 뭔지-_-a void PlayGameForm::OnPa.. 더보기
OpenCV로 영상 출력 성공, 하지만.. 앞에 설계에서 나타냈듯이, OpenCV로 화면출력하는데 필요한 함수나 변수들을 Camera 라는 Class에 넣고, 가져다 사용하는 식으로 구현을 하려고했다. 하지만 뭐가 문제인지, 로직상에는 문제가 없는데, 영상을 받아오자마자 이런 에러 메시지가 출력되면서 스택 오버플로우가 발생하였다. 하루 꼴딱 이 에러녀석과 싸우다가, 그냥 인터넷에 올라와있는 수많은 예제들 처럼 Form Class에 public으로 변수선언 해버리고 그냥 사용을 했더니 성공-_-;;;;;;;;; 아.......어이없어....... 어디가 잘못된 것일까.... 일단 마감일에 압박 때문에, Class화는 기능 구현이 다 된 후에 다시 하기로 하고 일단 Class diagram을 수정하였다. 아...그런데 이렇게 해버리니, 설계에 의한 .. 더보기
2010년 2월 9일 설계 [Use case diagram] [Class diagram] Rank 부분에서 Contents를 상속으로 묶을수 있을것 같은데 어떻게 해야할지 감이 안잡힌다. 더보기
VS2008에서 OpenCV 1.1 설정 방법 1)DownLoad.. http://sourceforge.net/projects/opencvlibrary/ 2)Build C:\Program Files\OpenCV\_make\opencv.vs2005.sln 빌드 >> 일괄빌드 에서 플랫폼은 Wind32로 Debug,Release모두 선택을하여 빌드시켜줘야한다. 3)Debug Error수정 위에서와같이 빌드를 해주면 에러가 발생할것이다. cvaux.h Line : 1167에서 보면.(줄 찾기는 Ctrl+G) 주석을 열어놓고 제대로 닫지 않은 코드를 볼수 있다. 이것을 제대로 고치고 다시 디버그하면 OpenCV설치의 1단계는 단락된것이다. 4)Visual Studio와 연동시키기 빌드까지 마친상태라면 visualstudio에 빌드한 include,Libra.. 더보기