1. 배경 전문 사이트로 이동

<링크> http://studiostyl.es/ 


2. 적당하게 맘에 드는것 다운로드




3. Visual studio 실행 후 Tools -> Import and Export settings 선택



4. Import selected environment settings 선택후 Next


4. No, 선택후 Next


5. Browse 선택


6. 다운받은 설정파일 선택 후 "열기"


7. Finish


8. close



9. 적용된 화면





다음엔 visual assist 설치를 포스팅 하겠습니다.


1. OpenCV 설치

최신 버전을 찾아서 다운 받습니다.


<링크> http://opencv.org/downloads.html



2. 설치 실행

실행 후 압축을 해제하게 되면 OpenCV 폴더가 생성되는데 C드라이브로 옮겨준다.



3. 환경 변수 설정

3-1. 경로 찾기

 아까 C:\로 위치를 이동시킨 OpenCV 폴더에 들어갑니다.

그 뒤 build -> x86 -> vc10 -> bin 폴더까지 간 다음에 해당 경로를 복사해 둡니다.

C:\opencv\build\x86\vc10\bin



3-2. 환경 변수 추가

 다음 

컴퓨터 속성 -> 고급시스템설정의 맨아래 환경 변수 -> 맨위 path 편집

에 들어간 다음 맨 뒤에 ; 를 추가 한 다음 복사해 두었던 경로를 붙여 넣기 후 "확인" 



4. 재부팅


5. 테스트

5.1 빈 프로젝트 생성

File -> new -> project


Visual C++ 탭에서 -> Win32 -> Win32 Console Application

Name : opencv_start 으로 생성


Source Files에서 C++ File(.cpp)생성

Name : main.cpp





5.2 라이브러리 및 경로 설정

opencv_start 프로젝트 오른쪽 클릭 후 properties


configuration properties -> c/c++ -> General -> Additional include Directories에


C:\opencv\build\include 추가

------------------------------------------------------------------------------------------------------------------------------


바로 아래에 있는 Linker -> General -> Additional Library Directories 에  C:\opencv\build\x86\vc10\lib 추가

그 다음 바로 아래에 있는 Linker -> Input -> Additional Dependencies -> Edit 클릭


다음 라이브러리 복사후 붙여넣기 추가 후 확인 버튼

opencv_calib3d249d.lib

opencv_contrib249d.lib

opencv_core249d.lib

opencv_features2d249d.lib

opencv_flann249d.lib

opencv_gpu249d.lib

opencv_highgui249d.lib

opencv_imgproc249d.lib

opencv_legacy249d.lib

opencv_ml249d.lib

opencv_nonfree249d.lib

opencv_objdetect249d.lib

opencv_ocl249d.lib

opencv_photo249d.lib

opencv_stitching249d.lib

opencv_superres249d.lib

opencv_ts249d.lib

opencv_video249d.lib

opencv_videostab249d.lib


여기서 붙은 d는 debug 모드 이므로 release 모드를 할 경우 d를 삭제 후 추가하면 됀다.

라이브러리 폴더는 C:\opencv\build\x86\vc10\lib 에 가면 있다.



5.3 테스트 코드 작성


#include <opencv\cv.h>

#include <opencv\highgui.h>

using namespace cv;


int main()

{

Mat img = imread("Desert.jpg");

//Mat img = imread("C:\\Users\\Public\\Pictures\\Sample Pictures\\Desert.jpg");

imshow("window Name", img);


waitKey(0);


return 0;

}


결과 화면


------------------------------------------------------------------------------------------------------------------------------


추가 사항

conversion to coff file invalid or corrupt 에러가 발생 할 경우

Project Properties 
   -> Configuration Properties 
       -> Linker (General) 
          -> Enable Incremental Linking -> "No (/INCREMENTAL:NO)"

 로 설정하면 됀다. 

펌 링크 : http://stackoverflow.com/questions/10888391/error-link-fatal-error-lnk1123-failure-during-conversion-to-coff-file-inval






쉬운걸 엄청 고민했다. 수정 할 부분이 어딘지 찾고 있다.

구글 검색으로 4줄안에 끝나는 소스도 있어서 많이 좌절했었다.


#include <stdio.h>


unsigned char HexNonZeroCount(unsigned int n);


int main()

{

printf("HexNonZeroCount = %d\n",HexNonZeroCount(1026));

return 0;

}


unsigned char HexNonZeroCount(unsigned int n)

{

unsigned char nCount = NULL;

unsigned char ucHexParsed[4]={};


ucHexParsed[0]=n&0xFF;

ucHexParsed[1]=n>>=8&0xFF;

ucHexParsed[2]=n>>=8&0xFF;

ucHexParsed[3]=n>>=8&0xFF;


for(int i=0; i<4; i++)

{

if(ucHexParsed[i])

{

int j;

for(j=0; ucHexParsed[i]!=0; j++)

{

ucHexParsed[i]&=ucHexParsed[i]>>1;

}

nCount+=j;

}

}

return nCount;

}

/*
 sum smallNum to bigNum
       */

#include <stdio.h>

int sum(int small, int big)
{
 if(small==big)
  return big;
 else
  return sum(small+1, big) + small;
}

int main()
{
 printf("input small Num\n");
 int smallNum;
 scanf("%d", &smallNum);
 printf("input big Num\n");
 int bigNum;
 scanf("%d", &bigNum);

 int result;
 result = sum(smallNum, bigNum);
 
 printf("sum smallNum to bigNum = %d\n", result);

 return 0;
}

#include <stdio.h>

int sum(int n)
{
 if(n==1)
  return 1;
 else
  return sum(n-1) + n;
}

int main()
{
 printf("input Num\n");
 int input;
 scanf("%d", &input);
 
 int result = sum(input); 
 printf("%d\n", result);

 return 0;
}

 

/*
 recursive function binary search
    */

void inputData(int nDataStart, int nDataSize, int* data);
void showArray(int* data, int nArraySize);
int binarySearch(int* data, int nKey, int nLeft, int nRight);

#include <stdio.h>
int main()
{
 printf("Input Data Start Number\n");
 int nDataStart=0;
 scanf("%d", &nDataStart);
 
 printf("Input Data Size\n");
 int nDataSize=0;
 scanf("%d", &nDataSize);
 
 int* data = new int[nDataSize];
 
 inputData(nDataStart, nDataSize, data);
 
 showArray(data, nDataSize);
 
 printf("Input Key Number\n");
 int nKey=0;
 scanf("%d", &nKey);

 int nIndex=binarySearch(data, nKey, 0, nDataSize);
 
 printf("index = %d\n", nIndex);

 return 0;

}

void inputData(int nDataStart, int nDataSize, int* data)
{
 int nCount=0;
 for(int i=nDataStart; i<nDataStart+nDataSize; i++)
 {
  data[nCount]=i;
  nCount++;
 }
}

void showArray(int* data, int nArraySize)
{
 for(int i=0; i<nArraySize; i++)
 {
  printf("Array -%d = %d\n",i,data[i]);
 }
}

int binarySearch(int* data, int nKey, int nLeft, int nRight)
{
 if(nLeft<=nRight)
 {
  int mid=(nLeft + nRight)/2;
  if(data[mid]==nKey)
   return mid;
  else if(data[mid]<nKey)
   return binarySearch(data, nKey, mid+1, nRight);
  else
   return binarySearch(data, nKey, nLeft, mid-1);
 }
}

'프로그래밍 > 기본 알고리즘' 카테고리의 다른 글

recursive sum - 재귀 합 정렬 N to M  (0) 2014.04.29
recursive sum - 재귀 합  (0) 2014.04.29
insertion sort - 삽입 정렬  (0) 2014.04.29
두 값 중 가장 큰 값 찾기  (0) 2014.04.29
Fibonacci - 피보나치  (0) 2014.04.29

+ Recent posts