본문 바로가기

카테고리 없음

OpenCV2_book Exam01

반응형

#include<iostream>

#include<opencv2\core\core.hpp>

#include<opencv2\highgui\highgui.hpp>


cv::Mat Func(); //그레이 영상

void ShowSize(cv::Mat image); // 영상 사이즈 

void ShowResult(char* name,cv::Mat image); // 결과 영상 출력


int main()

{

//영상 생성

cv::Mat image;

ShowSize(image);

//영상열기

image = cv::imread("lion.jpg");

//성공적으로 열었는지 확인

if(!image.data)

{

std::cout<<"Not found.."<<std::endl;

}

//영상 크기 출력

ShowSize(image);

//영상띄우기

ShowResult("원본이미지",image);

//영상 뒤집기

cv::Mat result;

//뒤집기 함수 

cv::flip(image,result,1);//1 은수평에 대한 양수,0 은 수직,모두 음수

//결과 띄워보기

ShowResult("수평으로 뒤집기",image);

//키입력 기다리기 

cv::waitKey(0);

cv::imwrite("result.bmp",result);

//두개의 새로운 영상 생성

cv::Mat image02,image03;

image02 = result;//동일한 데이터를 참조하는 두영상

result.copyTo(image03);//새로운 복사본이 생성

//수직으로 뒤집기

cv::flip(result,result,0);

//결과 출력

ShowResult("수직으로 뒤집기 image 2",image02);

ShowResult("image 3",image03);

//명암도 영상 가져오기

cv::Mat gray = Func();

//결과 출력

ShowResult("Gray Image",gray);

//키입력 대기 

cv::waitKey(0);


return 1;

}

//그레이 영상 

cv::Mat Func()

{

//영상 생성

cv::Mat ima(240,320,CV_8U,cv::Scalar(100));

//영상 반환

return ima;

}

// 데이터 사이즈 출력

void ShowSize(cv::Mat image)

{

std::cout<<"size: "<<image.size().height<<","<<image.size().width<<std::endl;

}

//결과 출력 함수

void ShowResult(char* name,cv::Mat image)

{

cv::namedWindow(name);//창정의

cv::imshow(name,image);//원본이미지 보이기

}



반응형