#include <highgui.h> #include <cv.h> #include <iostream.h> void main() { IplImage* src_img=cvLoadImage("zjut.jpg",1); //读入一幅图像 IplImage* dst_img; //一下为显示读入图像的一些信息 cout<<"★★★★★★★★★★★★★★★★★★★★★★"<<endl<<endl; cout<<" 1.jpg的图像信息"<<endl<<endl; cout<<"★★★★★★★★★★★★★★★★★★★★★★"<<endl<<endl; // IplImage该结构体的大小:112字节 cout<<" Img's size: "<<src_img->nSize<<endl; //版本ID :0 cout<<" Img's ID: "<<src_img->ID<<endl; // 显示读入图像信道数:3 cout<<"Img's channel's nums: "<<src_img->nChannels<<endl; //像素的位深度: 8 cout<<" Img's depth: "<<src_img->depth<<endl; //0 - 交叉存取颜色信道, cout<<" Img's dataOrder: "<<src_img->dataOrder<<endl; //0 - 图像数据分布结果:顶-左结构 cout<<" Img's origin: "<<src_img->origin<<endl; //图像宽像素数:400 cout<<" Img's width: "<<src_img->width<<endl; //图像高度像素数:600 cout<<" Img's height: "<<src_img->height<<endl; // 未指定ROI区域指针为空:0x00000000: cout<<" Img's ROI: "<<src_img->roi<<endl; //排列的图像行大小:1200 cout<<" Img's widthStep: "<<src_img->widthStep<<endl; // 图像数据大小(在交叉存取格式下imageSize=image->height*image->widthStep),单位字节 cout<<" Img'imageSize: "<<src_img->imageSize<<endl; //输出图像一个像素对应的RGB值。 for(int i=0; i<200; i=i+3) { cout<<(int)(uchar)src_img->imageData[i] <<" " //Blue <<(int)(uchar)src_img->imageData[i+1]<<" " //Green <<(int)(uchar)src_img->imageData[i+2]<<" " //Red <<endl; } dst_img=cvCreateImage( cvSize(src_img->width, src_img->height ), src_img->depth, 3 ); //dst_img 是src_img的倒置图像 cvConvertImage(src_img,dst_img,CV_CVTIMG_FLIP); cvNamedWindow("1.jpg",CV_WINDOW_AUTOSIZE); cvNamedWindow("2.jpg",CV_WINDOW_AUTOSIZE); cvShowImage("1.jpg",src_img); //显示图像 cvShowImage("2.jpg",dst_img); cvWaitKey(0); cvReleaseImage(&src_img); //释放图像 cvReleaseImage(&dst_img); }