2009年5月18日 星期一

OpenCV - 縮小圖像

#include <stdio.h>
#include <cv.h>
#include <highgui.h>

int main()
{
char FileName[10]="rain.jpg";

// 來源指標
IplImage *src = 0;

// 目的指標
IplImage *dst = 0;

// 縮小倍數
float scale = 0.618;

// 目標圖像的大小
CvSize dst_cvsize;

// 載入圖檔
src = cvLoadImage("rain.jpg",1);

// 設定目標寬為100 pixel
dst_cvsize.width = 100;
// 同比例縮小
dst_cvsize.height = src->height * ((float) dst_cvsize.width/src->width);

// 建構目標圖像
dst = cvCreateImage(dst_cvsize,src->depth,src->nChannels);

// 縮小來源圖到目標圖像
cvResize(src,dst,CV_INTER_LINEAR);

// 列印出原圖與縮小後圖的大小
printf("the original size is %i\n",src->imageSize);
printf("the scaled size is %i\n",dst->imageSize);

cvNamedWindow("src",CV_WINDOW_AUTOSIZE);

cvNamedWindow("dst",CV_WINDOW_AUTOSIZE);

// 顯示來源圖像
cvShowImage("src",src);

// 顯示目標圖像
cvShowImage("dst",dst);

// 等待用戶反應
cvWaitKey(-1);

// 釋放來源圖占用的記憶體
cvReleaseImage(&src);

// 釋放目標圖占用的記憶體
cvReleaseImage(&dst);

return 0;
}


編譯方式:
$ gcc `pkg-config opencv --libs --cflags` main.c -o main

參考資料:
縮放圖片

沒有留言:

張貼留言