#include#include using namespace std; int main () { cout << "This is sent to prompt" << endl; ofstream file; file.open ("test.txt"); streambuf* sbuf = cout.rdbuf(); cout.rdbuf(file.rdbuf()); cout << "This is sent to file" << endl; cout.rdbuf(sbuf); cout << "This is also sent to prompt" << endl; return 0; }
2013년 2월 27일 수요일
cout 출력을 파일로 저장하기
2013년 2월 21일 목요일
비주얼 스튜디오 2010 디렉터리 수정에서 상속된 값 변경하기
비주얼 스튜디오 2010에서는 디렉토리 설정이 각 프로젝트마다 관리하도록 변경되었습니다.
하지만 매번 포함/라이브러리/실행 디렉토리를 수정하기 힘드니까 상속된 값을 이용하여 자주 쓰는 경로는 상속해서 쓸수 있도록 되어있는데 이 값을 변경하는 부분이 없어서 구글링을 통하여 수정방법을 확인하였습니다. 비주얼 스튜디오 2010에서 바로 수정은 못하고 프로젝트 설정 파일을 통하여 수정하도록 되어있습니다.
$(USERPROFILE)\appdata\local\microsoft\msbuild\v4.0\
디렉토리 안에 보시면 32,64비트용 설정파일이 있고 열어보시면 다음과 같은 xml파일로 되어있으니 각 부분을 원하는데로 수정하시면 되겠습니다.
하지만 매번 포함/라이브러리/실행 디렉토리를 수정하기 힘드니까 상속된 값을 이용하여 자주 쓰는 경로는 상속해서 쓸수 있도록 되어있는데 이 값을 변경하는 부분이 없어서 구글링을 통하여 수정방법을 확인하였습니다. 비주얼 스튜디오 2010에서 바로 수정은 못하고 프로젝트 설정 파일을 통하여 수정하도록 되어있습니다.
$(USERPROFILE)\appdata\local\microsoft\msbuild\v4.0\
디렉토리 안에 보시면 32,64비트용 설정파일이 있고 열어보시면 다음과 같은 xml파일로 되어있으니 각 부분을 원하는데로 수정하시면 되겠습니다.
$(ExecutablePath) C:\Program Files (x86)\Point Grey Research\PGR FlyCapture\include;D:\OpenCV-2.3.1\build\include;C:\Program Files (x86)\Point Grey Research\Triclops Stereo Vision SDK\include;$(IncludePath) $(ReferencePath) C:\Program Files (x86)\Point Grey Research\PGR FlyCapture\lib;D:\OpenCV-2.3.1\build\x86\vc9\lib;C:\Program Files (x86)\Point Grey Research\Triclops Stereo Vision SDK\lib;$(LibraryPath) $(SourcePath) $(ExcludePath)
2013년 2월 6일 수요일
Structure from Motion 소스코드 컴파일
mastering opencv with practical computer vision projects 책에 있는 Chapter 4. Exploring Structure from Motion Using OpenCV
Source 코드 컴파일 방법
https://github.com/MasteringOpenCV/code 에서 소스코드 다운로드
컴파일에 필요한 라이브러리
OpenCV v2.3 이상
PCL v1.6 이상
SSBA v3.0 이상 http://www.inf.ethz.ch/personal/chzach/opensource.html
OpenCV, PCL은 무리 없이 설치가 가능한데 SSBA 라이브러리를 컴파일 하는게 조금 번거롭다.
SSBA 소스파일을 다운 받아서
> cmake -G "Visual Studio 9 2008"
명령을 이용하여 프로젝트 파일을 생성할 수 있다. 하지만 이때 2가지 문제가 발생하게 된다.
1. isinf(), isnan() 두가지 함수를 찾을 수 없다는 에러.
그래서 boost 라이브러리를 설치하고 다음을 수정하면 해결
#include <boost/math/special_functions.hpp> //추가
isinf() -> boost::math::isinf(); //수정
2. SuiteSparse에서 LDL, COLAMD 두가지 라이브러리가 필요하다는 에러.
http://www.cise.ufl.edu/research/sparse/SuiteSparse/
이곳에서 소스코드를 다운 받아서 필요한 2가지 라이브러리만 따로 프로젝트를 만들고 라이브러리를 생성해 주면 된다.
그러면 최종적으로 V3D.lib파일을 만들 수 있다.
Chapter 4. Exploring Structure from Motion Using OpenCV 디렉토리에서
> cmake -G "Visual Studio 9 2008"
실행하고 링크에서 opencv 라이브러리를 버전별로 수정해 주면 해결된다.
opencv_core243.lib opencv_imgproc243.lib opencv_ml243.lib opencv_highgui243.lib opencv_flann243.lib opencv_gpu243.lib opencv_calib3d243.lib opencv_features2d243.lib opencv_video243.lib
Cmmon.cpp에서
HANDLE 이 정의 되어 있지 않다는 에러가 난다면
#include <Windows.h> 을 추가
라벨:
all,
computer vision,
opencv,
sfm
2013년 1월 16일 수요일
프로그램 실행 시간 측정하기
#include <mmsystem.h> DWORD dwStartTime = timeGetTime(); DWORD dwEndTime = timeGetTime(); printf("%d ms\n", dwEndTime-dwStartTime);참조 라이브러리에 winmm.lib를 추가
2013년 1월 2일 수요일
파노라마(Panorama)
OpenCV 2.4 버전에는 stitcher 라는 클래스가 있어서 너무나 쉽게 파노라마 영상을 만들 수 있다.
간단하게 vector<Mat>를 하나 만든 다음 영상을 추가하고 실행하기만 하면 파노라마 영상을 손쉽게 만들 수 있다.
#include "opencv2/core/core.hpp" #include "opencv2/highgui/highgui.hpp" #include "opencv2/stitching/stitcher.hpp" using namespace cv; using namespace std; int main(int argc, char* argv[]) { vector<Mat> images; Mat panorama; images.push_back(imread("Picture 1.jpg", CV_LOAD_IMAGE_COLOR)); images.push_back(imread("Picture 2.jpg", CV_LOAD_IMAGE_COLOR)); images.push_back(imread("Picture 3.jpg", CV_LOAD_IMAGE_COLOR)); images.push_back(imread("Picture 4.jpg", CV_LOAD_IMAGE_COLOR)); Stitcher stitcher = Stitcher::createDefault(); stitcher.stitch(images, panorama); imshow("panorama", panorama); waitKey(0); return 0; }
피드 구독하기:
글 (Atom)