/*
관심영역 정의
--> 서로 다른 크기를 갖는 영상을 합칠때 사용
--> add 함수를 이용해 ROI(rigion of interest) 관심영역을 정의
--> 영상내에 ROI 의 위치가 결정되면 합친다
*/
#include<iostream>
#include<opencv2\core\core.hpp>
#include<opencv2\highgui\highgui.hpp>
//결과 출력 함수
void ShowResult(char* name,cv::Mat image);
int main()
{
cv::Mat image = cv::imread("panda.jpg");
cv::Mat logo = cv::imread("logo.jpg");
ShowResult("panda",image);
ShowResult("logo",logo);
cv::Mat imageROI = image(cv::Rect(50,10,logo.cols,logo.rows));
//로고의 x,y 시작좌표지정,col,row 끝점지정
cv::addWeighted(imageROI,1.0,logo,0.3,0.0,imageROI);
//영상에 로고 붙이기
ShowResult("ImageROI(결과영상)",image);
cv::waitKey(0);
return 1;
}
void ShowResult(char* name,cv::Mat image)
{
cv::namedWindow(name);//창정의
cv::imshow(name,image);//원본이미지 보이기
}
/*
마스크를 이용해 roi 영역에 복사
로고영역이 있는 화소값을 로고값으로 설정
*/
#include<iostream>
#include<opencv2\core\core.hpp>
#include<opencv2\highgui\highgui.hpp>
//결과 출력 함수
void ShowResult(char* name,cv::Mat image);
int main()
{
cv::Mat image = cv::imread("panda.jpg");
cv::Mat logo = cv::imread("logo.jpg");
cv::Mat imageROI = image(cv::Rect(50,10,logo.cols,logo.rows));
//로고의 x,y 시작좌표지정,col,row 끝점지정
cv::Mat mask = cv::imread("logo.jpg",0);
//마스크 불러오기(단 그레이레벨 영상이여야함)
logo.copyTo(imageROI,mask);//마스크를 roi 에 복사
ShowResult("ImageROI(결과영상)",image);
cv::waitKey(0);
return 1;
}
void ShowResult(char* name,cv::Mat image)
{
cv::namedWindow(name);//창정의
cv::imshow(name,image);//원본이미지 보이기
}