안녕하세요..// Opencv 에 쓰이는 IplImage 구조체에서 imageData 자료를 AR에서 사용하는 ARUint8 형태로 변환을 하려고합니다. void cvcam_callback( IplImage* image ) { ARUint8 *dataPtr; IplImage *ArBuffer; ArBuffer = cvCloneImage( image ); // ar 에 쓰일 버퍼 이미지 버퍼~ //방법1 : RGB ,BGRA 형식이 안맞아 안됩니다. dataPtr = (ARUint8*)ArBuffer->imageData; // 방법2 : 이방법 역시..안됩니다. IplImage *test = cvCreateImage( cvGetSize(image ), IPL_DEPTH_8U, 4); cvCvtColor(i..
IplImage *TableBuffer, *ArBuffer; TableBuffer = cvCloneImage( image ); // t-top 에 쓰일 버퍼 ArBuffer = cvCloneImage( image ); // ar 에 쓰일 버퍼 // test cvNamedWindow( "T-Top", CV_WINDOW_AUTOSIZE ); cvResizeWindow( "T-Top", 320, 240 ); cvShowImage( "T-Top", TableBuffer ); cvWaitKey(5); cvReleaseImage( &TableBuffer ); cvReleaseImage( &ArBuffer ); //cvDestroyWindow( "T-Top" ); 검색하는데 몇시간 안걸린듯 ㅋ 그래도 -_- 진작 해..
IplImage 구조체를 만들어 그 포인터를 리턴한다. 원형 IplImage* cvCreateImage( CvSize size, int depth, int channels ); 패러미터 * CvSize size : 이미지의 크기를 넘겨준다. 보통 cvSize()를 이용하거나 원본이 있고, 원본과 같은 크기의 이미지를 생성하고 싶을 때는 cvGetSize()등을 이용한다. * int depth : 하나의 값이 차지할 비트수를 지정한다. IPL_DEPTH_1U, IPL_DEPTH_8U, IPL_DEPTH_16U, IPL_DEPTH_32F, IPL_DEPTH_8S, IPL_DEPTH_16S, IPL_DEPTH_32S 등이 정의되어 있는데, 일반적으로 IPL_DEPTH_8U를 많이 쓴다. 뒤에 붙는 U는 Uns..
OpenCV 에서 디버그 할때 cvcamInit() 꺼지는 현상 코딩을 하다가 정말 귀찮다. 왜 자꾸 카메라를 연결시킨후 디버깅을 하면 꺼질까? ㅜㅜ... 엄청 암울하다. 음 그래서 맘먹고 함수이름으로 한번 찾아봤다 ! 역시 있다! 문제는 "Nero x.x" 프로그램!! 설치된것 때문에 !! 헐!! 해결방법은 아래와 같다. 살짝 눌려주기만 하면~!! 디버깅은 바로 된다! ㅎㅎㅎㅎ 먼저 C:\Program Files\Common Files\Ahead\DSFilter 폴더 안에 NeVideo.ax 파일이 존재하는지 확인한다. Nero 설치시 일반적인 설치를 했다면 아마 위의 폴더 경로에 해당 파일이 존재할 것이다. 만약 없다면 검색해서 어느 폴더에 존재하는지 확인한다. 시작->실행을 누른 다음 아래의 명령어..
Summary - ARToolKit Down 1. SourceForge.net 에서 ARToolKit Down 을 함 ARToolKit-2.7.2-1-bin-win32.zip DSVL-0.0.8b.zip OpenVRML-0.14.3-win32.zip 1. Down 받은 ARToolKit 를 원하는 경로에 복사함 2. ARToolKit 의 "*.dsw" or "*.sin"을 실행 3. (2005버전을 중심) 4. [도구]-[옵션] 클릭!! 5. [프로젝트 및 솔루션]-[VC++ 디렉터리] 6. 포함파일 선택! 1. ARToolKit\include\AR 추가 2. ARToolKit\include\AR\sys 추가 7. 라이브러리 파일 선택! 1. ARToolKit\Lib 추가 8. ARToolKit 폴더의 ..
라벨링이 필요한 이유 물체분할 라벨링 순서 / 라벨링 단계 라벨링이란? 라벨링 방법(Glassfire, 반복문) 라벨링이 필요한 이유! 가정용 로봇 : 주변 환경을 인식 하기위함 물체분할 분할은 배경(background)에서 물체(object)를 추출하는 것을 뜻한다. 음성인식에서 특별한 소리만을 인식하는 것도 분할에 해당한다. 영상에서 관심 있는 영역(semantic region)은 물체가 되고 나머지는 배경으로 취급된다. 차안에서 사람의 목소리는 물체이고 차 소리나 바람소리는 배경 또는 잡음(noise)으로 된다. 라벨링 순서 / 단계 라벨링 순서 입력영상 -> 이치화 -> 이치화 영상->연결분석->라벨링영상->특징추출->영상특징들 라벨링단계 이치화된 영상을 탐색하려다 밝기가 255인 화소값을 만나면..
1. 기하학 변환이란? 2. 전방향 / 역방향 3. 영상이동/회전/스케일링/반전/전단 4. 어파인변환/원근투영변환/직각투영변환 5. 보간법/이중선형보간법 기하학 변환이란? 영상 데이터 자체를 특정한 위치로 이동, 회전, 스케일링, 반전, 전단을 수행 회전(sin,cos), 스케일링(크기조절), 반전(위치반전) 전방향 / 역방향 ? 전방향 : 원본 -> 목적 -> 매핑 (매핑시 빈공간이 발생) 이유 : 확대,축소, 회전 등을 했을때 위치가 실수형으로 계산!! 해결 : 보간법 사용 전방향 공식 : 원본 -> 목적 (x,y) = (xs, ys ) 역방향 공식 : 원본 P’ = SRP + T ( 스케일링,회전 + 이동) - 선형변환 멀리 있는 물체는 작게 , 가까이 있는 물체는 크게 3차원 영상을 인간의 눈으로..
첫번째실패...두둥!! 접속 종료도 문제있고 ㅎㅎ... 다시 실행하니 뭐가 잘못됬는지 잘 모르겠다^^;; 음..그냥 접속은 되는데 ...계속 recv() 함수에서 대기하고 있으니깐... 쓰레드를 만들어야 겠다고 생각이 되어...다음 버전 고고싱!! 두번째... 실패작. 그리고 에디터 박스가 아니라 리스트 박스라서^^;; 아래로 스크롤이 되지 않는다. 리스트 박스로 고치고 싶으나...귀찮니즘으로 에디터 박스로 한다^^;; 후여기서 였지?? 리스트박스를 에디터 박스로 바꾼거... 대충이리저리 해서 ...결국 만들었다. 음. 나름 디자인 괜찮으니깐 계속 쭉~ 이걸로 나갈까 생각중이다. 이제 EventSelect , AsyncSelect 버전부터는 패킷, 쓰레드를 같이 쓰도록 해야하겠다. 후후...왜냐구? 난중..
서버와 클라이언트 파일입니다.^^ 테스트는 1PC 뿐이 안됩니다~^^ 그리고~!!? 보니..서버랑 클라이언트 IP 주소를 Text 로 만들어서 해야겠는걸... 이런이런~^^;; 간단한건데 나중에 해야지 ㅎㅎ . UDP 서버의 특징 1. 뭐.. TCP 처럼 연결지향적이 아니라서 패킷이 오면 오는데로 무조껀 받는다. 그러니깐..따로 관리를 해주고 싶으면 클라이언트의 IP 와 포트, 를 구해서 (클라의정보를구하고) List 에 삽입시킵니다. 그리고 이제 패킷오는것마다 List 의 아이피랑 동일한지 확인후.. TCP 처럼 접속,종료 관리를 할수가 있을 것이다. 응용을 한다면? ^^ 뭐 좋은 것들도 나오겠죠 후후... 특징은 이것말고 더 있는데...책을 참조하길 바람~^^