(환경 - OS : Window8.1K, Tool : Visual Studio 2010, OpenCV ver : 2.4.11)


OpenCV를 이용하여 이미지 출력하기.

앞서 했던 설정을 기본으로한다.

 

먼저 이미지를 준비한 뒤, 저장하고 프로젝트 폴더로 이동시킨다.

 

아래와 같은 코드를 작성을 하면

#include <opencv2\core\core.hpp>

#include <opencv2\highgui\highgui.hpp>

using namespace cv;

 

void main() {

 

        Mat image = imread("Lenna.png"); // disk에서 그림을 불러온다

        if(!image.data) exit(1); // 이미지가 있는지 확인하고 없으면 종료

 

        imshow("Lenna",image); // 이미지를 보여주는 함수. Par(1) 이름

       

        waitKey(0); //Wait for keystroke

}

 

아래와 같은 결과물이 도출된다.




* OpenCV 함수를 참고하여 만들어 보았다.

#include <opencv\highgui.h>


int main() {

IplImage *capture = cvLoadImage("Lenna.png");

cvNamedWindow("Lenna",1);

cvShowImage("Lenna",capture);

cvWaitKey(0);


// cvReleaseImage(&capture);

// cvDestroyWindow("Lenna");


return 0;

}

 


cvLoadImage()함수는 영상 데이터의 구조체 포인터를 반환한다. 인자 값으로 파일명과 형식을 넣어준다.

구조체의 이름은 IplImage이며, 단일 채널, 다중 채널, 정수형, 실수형 등 모든 형태의 영상 데이터를 IplImage로 표현할 수 있다. 또한 BMP, DIB, JPEG, JPE, PNG, PBM, PGM, PPM, SR, RAS, TIFF 등의 영상 포맷을 지원한다.

*출력할 영상은 프로젝트 폴더내에 존재하여야 한다.


cvNamedWindow()는 영상을 표시할 윈도우를 하나 만드는 일을 한다.

- 첫 번째 인자는 윈도우의 이름으로 등록된다.

- 두 번째 인자는 윈도우의 속성을 지정한다. 여기에는 0(기본값) 또는 1이 들어갈 수가 있다.

인자값이 0으로 지정되면 불러오는 영상의 크기에 상관없이 윈도우 크기는 일정하게 고정이 되고, 영상이 윈도우의 크기에 맞게 확대 또는 축소되어 나타난다. 만약 1(CV_WINDOW_AUTOSIZE)이면 불러오는 영상의 실제 크기에 맞게 윈도우의 크기가 자동으로 조절된다.


cvShowImage()함수는 IplImage* 타입으로 생성된 영상을 해당 제목을 갖은 윈도우에 영상을 출력한다.

- 첫번째 인자는 윈도우의 이름이고,

- 두번째 인자는 IplImage이다.


cvWaitKey()함수는 프로그램의 동작을 잠시 멈추고 사용자로부터 키 입력을 기다린다.

양의 정수일 경우 밀리초(millisecond) 단위로 지정한 시간동안 대기한다.

인자값이 0이나 음수일 경우 키가 눌려질 때 까지 무한정 기다린다.


cvReleaseImage()함수는 할당된 메모리 공간을 해제한다. 

인자로 IplImage*의 주소값을 전달해준다. 이 함수가 실행된 후 해당 IplImage는 NULL로 설정된다.


cvDestroyWindow()함수는 윈도우를 닫고, 윈도우를 위해 동적할당된 메모리 공간을 모두 해제한다. 


cvDestroyAllWindows()함수를 이용하여 한번에 모든 창을 닫을 수도 있다.


***** 간단한 프로그램의 경우 프로그램이 종료할 때 운영체제에 의해 할당된 모든 리소스들이 자동으로 반환되지만 cvReleaseImage()함수와 cvDestroyWindow()함수를 직접 호출하여 리소스를 반환하는것이 좋다.



'Study Note > Programming' 카테고리의 다른 글

[MFC] 정적인 그래프 그리기.  (0) 2017.02.07
[OpenCV]OpenCV를 이용해 영상 출력  (2) 2017.01.09
[OpenCV] 설치 및 설정 (VS)  (0) 2017.01.06
[MFC] assert() 함수  (1) 2016.11.22
메모리 관리 문제  (1) 2016.11.22

(환경 - OS : Window 8.1K , Tool : Visual Studio 2010, OpenCV Ver : 2.4.11)


OpenCV 입문

 

1. OpenCV 설치

- OpenCV 홈페이지(http://opencv.org/download.html)에서 OpenCV 최신 버전을 다운로드한다.

 

- 제어판 - 시스템(윈도우키 + Pause)에서 환경변수 설정을 한다. 시스템 변수에서 새로 만들기를 클릭한다.


 


 

2. Visual Studio 설정

l  C/C++ 목록이 없다면 아무거나 컴파일 하면 생성됨





 

솔루션 플랫폼을 x64로 변경해주는데 없다면 구성관리자 탭에 들어간 후,


새로만들기로 추가해주면 된다.


opencv_calib3d2411d.lib

opencv_contrib2411d.lib

opencv_core2411d.lib

opencv_features2d2411d.lib

opencv_flann2411d.lib

opencv_gpu2411d.lib

opencv_highgui2411d.lib

opencv_imgproc2411d.lib

opencv_legacy2411d.lib

opencv_ml2411d.lib

opencv_nonfree2411d.lib

opencv_objdetect2411d.lib

opencv_ocl2411d.lib

opencv_photo2411d.lib

opencv_stitching2411d.lib

opencv_superres2411d.lib

opencv_ts2411d.lib

opencv_video2411d.lib

opencv_videostab2411d.lib



프로젝트 폴더 안에 jpg파일을 넣고 실행하면

#include <opencv\cv.h>

#include <opencv\highgui.h>

 

int main()

{

        IplImage *image = cvLoadImage("opencv.jpg");

        cvShowImage("Test Image", image);

        cvWaitKey(0);

        cvReleaseImage(&image);

        return 0;

}

 

 

 

이와 같은 결과를 얻을 수 있다.

'Study Note > Programming' 카테고리의 다른 글

[OpenCV]OpenCV를 이용해 영상 출력  (2) 2017.01.09
[OpenCV] 이미지 출력하기.  (0) 2017.01.06
[MFC] assert() 함수  (1) 2016.11.22
메모리 관리 문제  (1) 2016.11.22
[MFC] 대화상자 Domodal, Modaless  (0) 2016.11.19

아래 방화벽문제는 아닌거 같아서 우분투를 다시 설치 하고 해보았다.

(설정 또한 안바꿔도됨)

역시 예상대로 패키지 설치만하니까 간단히 연결되었다 .

================================================

Ubuntu 설치를 할때 기본 설치로 진행하였다.


별 다른 설정을 하지 않았기에 기본 상태로 깔린거 같다.


평소와 같이 Xshell이나 putty로 원격으로 붙으려하니 붙지를 않아 방화벽 문제일거라 생각하여


$ sudo ufw disable  // 방화벽 해제

을 해줬다.


결과는 Fail.


22번포트를 열어주어야하나싶어


$ sudo ufw allow 22 // 22번 포트 허용

결과는 역시 fail


맨땅에 헤딩하기가 이렇게 힘들던가...

결국 다른 블로거의 힘을 빌리기로 했다.


/etc/network/interfaces 의 내용을 수정하라고한다


auto lo

iface lo ..... 이런식으로 작성되어있는데


lo -> eth0 으로 수정하였다.


그리고


# sudo apt-get install openssh-server


이 패키지가 안깔려있는데 이놈이 큰 문제였던거 같다. (물론 방화벽 문제도 있었겠지만)


네트워크를 재시작 해주어야한다.

# sudo /etc/init.d/ssh restart

혹은

# service restart

혹은

# service ssh restart 



성공이다.


앞으로 이런 문제는 가볍게 넘기도록해야겠다.

+ Recent posts