웹캠으로 손가락 추적 후 OpenCV와 OpenGL을 이용한 3D프린트 만들기
*익*
다운로드
장바구니
소개글
★ OpenCV 포함라이브러리, 추가라이브러리 설정 후 웹캠만 연결하면 동작합니다. ★본 프로그램 소스는 웹캠을 이용하여 손가락을 추적 후 객체 3D프린팅을 할 수 있도록 구현하였습니다.
3D프린트는 OpenGL로 연동하여 컴파일 후 ESC키를 누르면 프롬프트 창이 열리며 3D로 확인가능합니다.
프로그램 사용순서>
1. 먼저 Microsoft Visual Studio에서 작업을 할 수 있도록 환경을 세팅한다.
2. OpenCV를 연동 시킨다. (본 프로그램에서는 OpenCV 2.4.9를 사용하였다.)
3. 속성에서 포함 디렉터리, 라이브러리 디렉터리, 링커 -> 입력에서 라이브러리 추가시킨다.
(이 과정은 구글이나 네이버 블로그에서 VisualStudio C++과 OpenCV 연동하기를 검색하여 따라하면 쉽다.)
4. OpenGL도 마찬가지로 VisualStudio와 연동한다. (OpenCV 연동 보다 쉽다.)
5. 모든 준비를 마쳤으면, 노트북 또는 데스크탑의 웹캠 연결을 마친다.
6. 손가락에 색깔이 있는 띠를 두른다. (아무 색깔이나 상관없음) 마우스 컨트롤로 손가락 띠 부분을
드래그한다.
7. 사각형 또는 삼각형을 그려본다. 드래그한 픽셀을 따라 선(검정색)이 그려진다.
8. 사각형 또는 삼각형을 그렸으면 스페이스바를 누른다. 프로그램에서 삼각형인지, 사각형인지 판별한다.
또한, 160x160이라고 생각했을때 각 꼭짓점의 벡터값을 출력한다. (삼각형의 경우 3점의 벡터값)
(꺽이는 선과 hole을 기준으로 꼭지점 갯수를 판별하고, Rectangle인지 Triagle인지 프롬프트 창에서 확인된다.)
9. ESC버튼을 누르면 OpenGL 작동 후 3D로 보여준다. (각각의 면이 다른 색깔로 보기 쉽게 구현함.)
(키보드 방향키로 움직일수 있게 구현하였다.)
컴파일 실행환경
Microsoft visual C++, OpenCV, OpenGL압축파일 내 파일목록
adc_8591.cpp
adc_8591.h
bluetooth.cpp
bluetooth.h
brick.cpp
brick.h
color.cpp
color.h
compass.cpp
compass.h
connection.h
error.cpp
error.h
filesystem.cpp
filesystem.h
gyro.h
i2c.cpp
i2c.h
io_8574.cpp
io_8574.h
ipch/
ipch/midterm-2e7f76fe/
ipch/midterm-2e7f76fe/midterm-487401b8.ipch
light.h
midterm.cpp
midterm.opensdf
midterm.sdf
midterm.sln
midterm.suo
midterm.vcxproj
midterm.vcxproj.filters
midterm.vcxproj.user
midterm_test_02.cpp
midterm_test_02.sdf
midterm_test_02.sln
midterm_test_02.vcxproj
midterm_test_02.vcxproj.filters
midterm_test_02.vcxproj.user
motor.cpp
motor.h
network.cpp
network.h
nxt.h
rcx_light.h
ReadMe.txt
Release/
Release/adc_8591.obj
Release/bluetooth.obj
Release/brick.obj
Release/cl.command.1.tlog
Release/CL.read.1.tlog
Release/CL.write.1.tlog
Release/color.obj
Release/compass.obj
Release/error.obj
Release/i2c.obj
Release/io_8574.obj
Release/link.command.1.tlog
Release/link.read.1.tlog
Release/link.write.1.tlog
Release/midterm.exe
Release/midterm.exe.intermediate.manifest
Release/midterm.lastbuildstate
Release/midterm.log
Release/midterm.pch
Release/midterm.pdb
Release/midterm.vcxprojResolveAssemblyReference.cache
Release/midterm.write.1.tlog
Release/midterm_test_02.obj
Release/motor.obj
Release/mt.command.1.tlog
Release/mt.read.1.tlog
Release/mt.write.1.tlog
Release/network.obj
Release/sensor.obj
Release/sonar.obj
Release/stdafx.obj
Release/tilt.obj
Release/tracker_opencv.obj
Release/vc100.pdb
rotation.h
sensor.cpp
sensor.h
sonar.cpp
sonar.h
sound.h
stdafx.cpp
stdafx.h
targetver.h
temperature.h
tilt.cpp
tilt.h
touch.h
tracker_opencv.cpp
tracker_opencv.h
adc_8591.h
bluetooth.cpp
bluetooth.h
brick.cpp
brick.h
color.cpp
color.h
compass.cpp
compass.h
connection.h
error.cpp
error.h
filesystem.cpp
filesystem.h
gyro.h
i2c.cpp
i2c.h
io_8574.cpp
io_8574.h
ipch/
ipch/midterm-2e7f76fe/
ipch/midterm-2e7f76fe/midterm-487401b8.ipch
light.h
midterm.cpp
midterm.opensdf
midterm.sdf
midterm.sln
midterm.suo
midterm.vcxproj
midterm.vcxproj.filters
midterm.vcxproj.user
midterm_test_02.cpp
midterm_test_02.sdf
midterm_test_02.sln
midterm_test_02.vcxproj
midterm_test_02.vcxproj.filters
midterm_test_02.vcxproj.user
motor.cpp
motor.h
network.cpp
network.h
nxt.h
rcx_light.h
ReadMe.txt
Release/
Release/adc_8591.obj
Release/bluetooth.obj
Release/brick.obj
Release/cl.command.1.tlog
Release/CL.read.1.tlog
Release/CL.write.1.tlog
Release/color.obj
Release/compass.obj
Release/error.obj
Release/i2c.obj
Release/io_8574.obj
Release/link.command.1.tlog
Release/link.read.1.tlog
Release/link.write.1.tlog
Release/midterm.exe
Release/midterm.exe.intermediate.manifest
Release/midterm.lastbuildstate
Release/midterm.log
Release/midterm.pch
Release/midterm.pdb
Release/midterm.vcxprojResolveAssemblyReference.cache
Release/midterm.write.1.tlog
Release/midterm_test_02.obj
Release/motor.obj
Release/mt.command.1.tlog
Release/mt.read.1.tlog
Release/mt.write.1.tlog
Release/network.obj
Release/sensor.obj
Release/sonar.obj
Release/stdafx.obj
Release/tilt.obj
Release/tracker_opencv.obj
Release/vc100.pdb
rotation.h
sensor.cpp
sensor.h
sonar.cpp
sonar.h
sound.h
stdafx.cpp
stdafx.h
targetver.h
temperature.h
tilt.cpp
tilt.h
touch.h
tracker_opencv.cpp
tracker_opencv.h