2014년 12월 17일 수요일

Image extension

for구문에서 rgb for구문 안에서 두 개의 for구문을 사용한다 

#include <opencv2\/opencv.hpp>
#include <opencv\cv.h>
#include <stdio.h>
using namespace cv;

void main()
{

  IplImage* image = 0;                          // image 선언
      image = cvLoadImage("img.jpg", 1);     //img.jpg파일을 불러옴 1은 컬러로 받아옴, 0은 흑백으로 받아옴(rgb가 없음)
 
  int width = image->width;
  int height = image->height;
  int index = image->widthStep;
  int ratio = 2;
  CvSize size = cvSize(width*ratio, height*ratio);
  IplImage *newImage = cvCreateImage(size, IPL_DEPTH_8U, 3);//세번째 인자값 1: 1=1채널(rgb가 없음) , 3=3채널
  for(int i=0;i<height;i++)
for(int j=0;j<width;j++){
for(int k=0;k<3;k++){
for(int ii=0;ii<ratio;ii++)
for(int jj=0;jj<ratio;jj++)
newImage->imageData[(i*ratio+ii)*newImage->widthStep+(j*ratio+jj)*3+k] = image->imageData[i*index+j*3+k];
}
}


  cvSaveImage("out.jpg",image);
  cvSaveImage("out2.jpg",newImage);
  
  cvNamedWindow( "openCV", 1);      // 윈도우 생성
  cvNamedWindow( "openCV2", 1);      // 윈도우 생성
      cvShowImage( "openCV", image );  // 이미지를 보여줌
  cvShowImage( "openCV2", newImage );  // 이미지를 보여줌
  cvWaitKey(0);                    // 사용자의 키 입력을 기다림
 
      cvDestroyWindow( "openCV" ); 
  cvDestroyWindow( "openCV2" );
}

결과

댓글 없음:

댓글 쓰기