본문 바로가기

카테고리 없음

OpenCV(결과영상)

반응형

/*

관심영역 정의 

--> 서로 다른 크기를 갖는 영상을 합칠때 사용 

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

}




반응형