VC改变BMP图像大小

来源:互联网 发布:json好处 编辑:程序博客网 时间:2024/06/05 11:32
#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;
}
原创粉丝点击