VC改變BMP圖像大小

#include "cv.h"
#include "highgui.h"
#include "stdio.h"


int main(int argc,char *argv[])
{
 IplImage *image=0,*imageresize=0;
 image=cvLoadImage("lena.jpg",1);
 if(!image) printf("can't load an image\n");


 imageresize=cvCreateImage(cvSize(1000,750),IPL_DEPTH_8U,3);
 cvResize(image,imageresize,CV_INTER_LINEAR);
 cvNamedWindow("lena",1);
 cvNamedWindow("size",1);
 cvShowImage("size",imageresize);
 cvShowImage("lena",image);
 cvWaitKey(0);
 cvReleaseImage(&image);
 cvReleaseImage(&imageresize);
 cvDestroyWindow("size");
 cvDestroyWindow("lena");
 return 0;
}






#include "cv.h"
#include "highgui.h"
#include <math.h>


int main(int argc,char * argv[])
{
IplImage* src = /blog.armyourlife.info/0;
IplImage* dst = 0;
double scale=0.618;//縮放比例
CvSize dst_size;//定義二維化矩形框


if((argc==2) && (src = /blog.armyourlife.info/cvLoadImage(argv[1],1))!=0)
{
dst_size.width = (int)(src->width * scale);
dst_size.height = (int)(src->height * scale);//確定新圖的矩形框
dst=cvCreateImage(dst_size,src->depth,src->nChannels);//創建圖像頭
cvResize(src,dst,CV_INTER_LINEAR);//使用雙線性差值減小圖像。
cvNamedWindow("src",CV_WINDOW_AUTOSIZE);
cvNamedWindow("dst",CV_WINDOW_AUTOSIZE);
cvShowImage("src",src);


 


cvShowImage("dst",dst);
cvWaitKey(-1);
cvReleaseImage( &src );
cvReleaseImage( &dst );
cvDestroyWindow("src");
cvDestroyWindow("dst");
}


return 0;


}




#include <cv.h>


#include <highgui.h>


#include <math.h>


int main(int argc, char* argv[])


{


 IplImage *src = 0;   //源圖像指針


IplImage *dst = 0;   //目標圖像指針


 float scale = 0.618;  //縮放倍數爲0.618倍


CvSize dst_cvsize;   //目標圖像尺寸


 /* the first command line parameter must be image file name */


 if ( argc == 2 && (src = cvLoadImage(argv[1], -1))!=0 )


 {    //如果命令行傳遞了需要打開的圖片就無須退出,所以註釋掉下面一行!


//return -1;


  }


  else


   {


  src = cvLoadImage("tiger.jpg");    //載入工作目錄下文件名爲“tiger.jpg”的圖片。


   }


    dst_cvsize.width = src->width * scale;  //目標圖像的寬爲源圖象寬的scale倍


 dst_cvsize.height = src->height * scale; //目標圖像的高爲源圖象高的scale倍


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


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


 cvNamedWindow( "src",   CV_WINDOW_AUTOSIZE ); //創建用於顯示源圖像的窗口


 cvNamedWindow( "dst",   CV_WINDOW_AUTOSIZE ); //創建用於顯示目標圖像的窗口


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


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


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


 cvReleaseImage(&src); //釋放源圖像佔用的內存


cvReleaseImage(&dst); //釋放目標圖像佔用的內存


 cvDestroyWindow( "src" ); //銷燬窗口“src”


 cvDestroyWindow( "dst" ); //銷燬窗口“dst”






本文來自CSDN博客,轉載請標明出處:http://blog.csdn.net/wuguiping0416/archive/2010/07/07/5719508.aspx




#include <opencv/cv.h>
#include <opencv/highgui.h>
#include <stdlib.h>
#include <stdio.h>


int main( int argc, char** argv ){
    IplImage * src = cvLoadImage(argv[1]);
    CvSize sz;
    double scale = 0.25;
    sz.width = src->width*scale;
    sz.height = src->height*scale;
    IplImage * dest = cvCreateImage(sz, src->depth,src->nChannels);
    cvResize(src,dest,CV_INTER_LINEAR);
    char titsrc[]="src";
    cvNamedWindow(titsrc,CV_WINDOW_AUTOSIZE);
    char titdest[]="dest";
    cvNamedWindow(titdest,CV_WINDOW_AUTOSIZE);
    cvShowImage(titsrc,src);
    cvShowImage(titdest,dest);
    cvWaitKey(0);
    cvReleaseImage(&src);
    cvReleaseImage(&dest);
    cvDestroyWindow(titsrc);
    cvDestroyWindow(titdest);
    return 0;
}
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章