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" );
}
결과

댓글 없음:
댓글 쓰기