0:必用头文件
#include <cxcore.h>#include <cv.h>#include <highgui.h>#define WINDOW_AUTOSIZE 1//CV_WINDOW_AUTOSIZE 这个宏是存在的using namespace cv;
1:读取图片,显示图片,保存图片
//readMat image;image =imread("1.png",1);if (image.data==0) //读数据失败//write imwrite( "../../images/Gray_Image.jpg", gray_image );//show namedWindow( "color image", CV_WINDOW_AUTOSIZE ); imshow( "color image", image );//convert BGR to Gray//颜色转换函数 :从源image,到目gray_image, 宏CV_BGR2GRAY规定了颜色变换方法 cvtColor( image, gray_image, CV_BGR2GRAY );
2:图片对象之间的reference and copy
//referenceMat A, C; // creates just the header partsA = imread(argv[1], CV_LOAD_IMAGE_COLOR); // here we'll know the method used (allocate matrix)Mat B(A); // Use the copy constructorC = A; // Assignment operator//如上A,B,C都是指向同一个数据matrix,操作其中一个,同时会影响其它的数据//但是A,B,C有不同的header,所以 这些不同的header可以指向matrix中的一个子数据集//ROI:region of interest//如下,截取一张图片中的一部分数据 的方法Mat D (A, Rect(10, 10, 100, 100) ); // using a rectangleMat E = A(Range::all(), Range(1,3)); // using row and column boundaries//copyMat F = A.clone();Mat G;A.copyTo(G);/*注意:图片的容器使用了Mat对象,Mat对象由header和data组成header是图片的信息:size and address pointer部分data是图片的颜色信息 */
3:老式函数cvLoadImage打开图片的方法
//加载显示 IplImage* img = cvLoadImage("13.png", 1);Mat mtx(img); // convert IplImage* -> MatnamedWindow("Display Image", WINDOW_AUTOSIZE );//将image图片在Display Image这个窗口中显示imshow("Display Image", mtx);cvWaitKey(0);//wait for ur enter press on the picture