2012년 12월 27일 목요일

OpenCV #1-3 Example (Mat, copyTo)

  • Example

#include <iostream>
#include <opencv2/core/core.hpp>
#include <opencv2/highgui/highgui.hpp>
using namespace std;
// using namespace cv; // cv 네임스페이스 내부 정의

int main()
{
cv::Mat ima(240, 320, CV_8U, cv::Scalar(100));
// 기본적으로 0x0이지만 초기 크기 지정 가능.
// 1 바이트 화소의 경우 CV_8U를 지정. 
// U 문자는 부호 없음을 의미, S 문자는 부호있는 숫자 선언.
// 컬러 영상의 경우 3차원 채널(CV_8UC3)을 지정.
// cv::Scalar(100)은 0과 255가 아니므로 회색조.

cv::Mat image1;
image1 = cv::imread("img3.jpg");

cv::Mat image2, image3;
image2 = image1; // 같은 데이터를 참조하는 두 영상 (복사가 아닌 참조를 한다.)
image1.copyTo(image3); // copyTo를 이용해서 새로운 복사본 생성

flip(image1, image1, 1); 
// image3는 영상의 복사본을 갖고 있으므로 변하지 않는다.
// image1과 2는 변환에 의한 결과를 보게 된다.

cv::namedWindow("image1");
cv::imshow("image1", image1);
cv::namedWindow("image2");
cv::imshow("image2", image2);
cv::namedWindow("image3");
cv::imshow("image3", image3);
cv::waitKey(0);

return 1;
}

  • Result





  • 참고문헌 : OpenCV 2 Computer Vision Application Programming Cookbook