#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);//원본이미지 보이기
}