메뉴 건너뛰기

응용프로그램 - RaspberryPi.NCLab

* 앞으로의 응용프로그램 실행 순서는 다음과 같음

test.cpp 작성 -> CMakeLists.txt 작성 -> cmake -> make -> 백그라운드에서 Test 실행 -> mjpg_streamer 실행

test.cpp


1. crossline이라는 디렉토리를 만들고 그 안에 CMakeLists.txt, test.cpp 파일 생성

# cd ~
# mkdir crossline
# cd crossline
# vim CMakeLists.txt
# vim test.cpp

cmake_minimum_required ( VERSION 2.8 )
PROJECT ( Test )
find_package ( OpenCV REQUIRED )
add_executable ( Test test.cpp )
target_link_libraries ( Test ${OpenCV_LIBS} )

#include <opencv/cv.h>
#include <opencv2/highgui/highgui.hpp>
int main(void){
	int i, threshold = 0;
	IplImage* image = 0;
	/* 연결된 카메라에서 제어를 받아 옴 */
	CvCapture* capture = cvCaptureFromCAM(0);
	while(1) {
		/* 카메라에서 얻은 한 프레임을 IplImage 구조체로 변환 */ 
		cvGrabFrame(capture);
		image = cvRetrieveFrame(capture);
		/* 화면에 + 모양의 선을 그림 */
		cvLine(
			image,
			cvPoint(image->width/2, 0),
			cvPoint(image->width/2, image->height), 
			CV_RGB(255,255,0),
			3,8,0);
		cvLine(
			image,
			cvPoint(0,image->height/2),
			cvPoint(image->width, image->height/2), 
			CV_RGB(255,255,0),
			3,8,0);
		/* 해당 경로에 위에서 만든 이미지를 저장 */
		cvSaveImage("/srv/http/origin2.jpg", image);
	}
	cvReleaseImage(&image);
	cvReleaseCapture(&capture);
	return 0;
}



2. cmake 유틸리티를 통해 Makefile 생성

# cmake .
-- The C compiler identification is GNU 5.2.0
-- The CXX compiler identification is GNU 5.2.0
-- Check for working C compiler: /usr/bin/cc
-- Check for working C compiler: /usr/bin/cc -- works
-- Detecting C compiler ABI info
-- Detecting C compiler ABI info - done
-- Detecting C compile features
-- Detecting C compile features - done
-- Check for working CXX compiler: /usr/bin/c++
-- Check for working CXX compiler: /usr/bin/c++ -- works
-- Detecting CXX compiler ABI info
-- Detecting CXX compiler ABI info - done
-- Detecting CXX compile features
-- Detecting CXX compile features - done
-- Configuring done
-- Generating done
-- Build files have been written to: /root/crossline


3. make 유틸리티를 통해 컴파일

# make
Scanning dependencies of target Test
[ 50%] Building CXX object CMakeFiles/Test.dir/test.cpp.o
[100%] Linking CXX executable Test
[100%] Built target Test


4. 컴파일 결과물인 Test를 백그라운들에서 실행하고 mjpg_streamer 유틸리티를 통해 웹으로 출력

# ./Test&
[1] 23949
# mjpg_streamer -i "input_file.so -f /srv/http/" -o "output_http.so -p 8080 -w /usr/share/mjpg_streamer/www"
MJPG Streamer Version: svn rev:
 i: folder to watch...: /srv/http/
 i: forced delay......: 1
 i: delete file.......: no, do not delete
 i: filename must be..: -no filter for certain filename set-
 o: www-folder-path...: /usr/share/mjpg_streamer/www/
 o: HTTP TCP port.....: 8080
 o: username:password.: disabled
 o: commands..........: enabled


5. 웹 브라우저에서 접근

캡처13.PNG

* 앞과 같은 방식으로 접근하면 됨


6. Ctrl+c 키를 눌러 mjpg_streamer를 종료시키고 Test도 종료

^Csetting signal to stop
force cancellation of threads and cleanup resources
 o: cleaning up ressources allocated by server thread #00
done
# ps -ef | grep Test
root     23949 23785 32 05:07 pts/1    00:00:46 ./Test
root     23960 23785  0 05:10 pts/1    00:00:00 grep Test
# kill 23949
* Test의 pid는 환경에 따라 달라질 수 있으므로 유의


--

OpenCV를 이용한 영상처리 실습 - 01 개발환경 소개

OpenCV를 이용한 영상처리 실습 - 02 개발환경 구축하기

OpenCV를 이용한 영상처리 실습 - 04 화면을 그레이스케일로 만들기

OpenCV를 이용한 영상처리 실습 - 05 영상에서 얼굴 검출하기

위로