C++ opencv中 cvCreateImageHeader 和 cvCreateImage

//由于已经有了数据,则直接用cvCreateImageHeader,如果没有数据则使用cvCreateImage进行创建

IplImage *iplImage = cvCreateImageHeader(cvSize(m_sFrameHead.iWidth, m_sFrameHead.iHeight), IPL_DEPTH_8U, m_sFrameHead.uiMediaType == CAMERA_MEDIA_TYPE_MONO8 ? 1 : 3);
		//memcpy(iplImage, m_pFrameBuffer, iplImage->widthStep * iplImage->height);
		cvSetData(iplImage, m_pFrameBuffer, m_sFrameHead.iWidth*(m_sFrameHead.uiMediaType == CAMERA_MEDIA_TYPE_MONO8 ? 1 : 3));

		m_IplImage = cvCreateImage(cvSize(m_sFrameHead.iWidth, m_sFrameHead.iHeight), IPL_DEPTH_8U, m_sFrameHead.uiMediaType == CAMERA_MEDIA_TYPE_MONO8 ? 1 : 3);
		
		cvFlip(iplImage, m_IplImage);

这样的话,使用cvFlip才没有问题的

赋值的时候,使用cvSetData就可以了

你可能感兴趣的:(C/C++,OpenCV,opencv,visual,studio,c++)