#include "stdafx.h" #include "opencv2/opencv.hpp" int _tmain(int argc, _TCHAR* argv[]) { char * filename = "2.jpg"; int x = 300; int y = 200; IplImage* src = cvLoadImage("2.jpg",CV_LOAD_IMAGE_GRAYSCALE); IplImage* part = cvCreateImageHeader(cvSize(200,200),src->depth,src->nChannels); uchar* ptr = (uchar*)(src->imageData + x*sizeof(uchar) + y*src->widthStep); //得到圖像中像素點(300,200)的指針 cvSetData(part,ptr,src->widthStep); //圖像part就為原圖像的(300,200,300+200,200+200)部分 cvShowImage("src",src); cvShowImage("partial",part); cvReleaseImage(&src); cvWaitKey(0); return 0; }
//cvSetData的第一個參數是目標圖像頭,比如像這里的part;第二個參數是要復制的源圖像數據的位置;第三個參數是源圖像的行長度
//下面是這個程序的運行結果