OpenCV 퍼 즐 알고리즘 구현

3460 단어 opencv퍼 즐
본 논문 의 사례 는 OpenCV 가 퍼 즐 알고리즘 을 실현 하 는 구체 적 인 코드 를 공유 하여 여러분 께 참고 하 시기 바 랍 니 다.구체 적 인 내용 은 다음 과 같 습 니 다.
프로 그래 밍 환경:VS 2012+OpenCV 2.4.6
기능:
첫 번 째 는 세 폭 의 그림 의 지정 한 위 치 를 지정 한 픽 셀 을 새 그림 으로 직접 옮 기 는 것 입 니 다.
두 번 째 는 세 폭 의 그림 을 우리 가 설정 한 크기 에 따라 부 등비 로 세 번 째 그림 에 축소 하 는 것 이다.
원본 이미지 세 장



두 가지 효과 도


#include <opencv2/core/core.hpp>
#include <opencv2/highgui/highgui.hpp>
#include <opencv2\imgproc\imgproc.hpp>
#include <iostream>
using namespace std;
using namespace cv;
 
int main()
{
 ///    /
 ///image1
 //cv::Mat image::zeros(768,1300);
 Mat image1;
 image1= cv::imread("1.jpg");
 if(!image1.data)
 {
  cout<<"image does not exist"<<endl;
 }
 namedWindow("Image1");//    
 imshow("Image1",image1);//    
 ///image2
 Mat image2;
 image2= cv::imread("2.jpg");
 if(!image2.data)
 {
  cout<<"image does not exist"<<endl;
 }
 namedWindow("Image2");
 imshow("Image2", image2);
 //image3
 Mat image3;
 image3= cv::imread("3.jpg");
 if(!image3.data)
 {
  cout<<"image does not exist"<<endl;
 }
 cv::namedWindow("Image3");
 cv::imshow("Image3", image3);
 
 ///      /
 cv::Mat combine = cv::Mat::zeros( 700, 1300,image1.type());
 //cout<<image.type()<<endl;             16
 // define ROI
 Mat imageROI1= combine(Rect(0,0,500,700));
 Mat imageROI2= combine(Rect(500,0,800,350));
 Mat imageROI3= combine(Rect(500,350,800,350));
 //DEBUG
 //std::cout<<combine.cols<<" "<<combine.rows<<endl; 
 
 //         ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~••
 image1(cv::Rect( 0, 0, 500, 700)).copyTo(imageROI1);
 image2(cv::Rect( 0, 0, 800, 350)).copyTo(imageROI2);
 image3(cv::Rect( 0, 0, 800, 350)).copyTo(imageROI3);
 
 
 //                  
 //std::cout<<combine(cv::Rect(0, 0, 3, 3))<<std::endl;
 
 
 //      ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 namedWindow("Combined Image");
 imshow("Combined Image", combine);
 
 
 
 ///      /
 /
 //            ,  resize          , ,            
 
 ///!!!                
 
 resize(image1, imageROI1, imageROI1.size(),INTER_CUBIC);
 resize(image2, imageROI2, imageROI2.size(),INTER_CUBIC);
 resize(image3, imageROI3, imageROI3.size(),INTER_CUBIC);
 
 namedWindow("Combined Image++");
 imshow("Combined Image++", combine);
 
 waitKey(0);
 
}
이상 이 바로 본 고의 모든 내용 입 니 다.여러분 의 학습 에 도움 이 되 고 저 희 를 많이 응원 해 주 셨 으 면 좋 겠 습 니 다.

좋은 웹페이지 즐겨찾기