ImageMagick++格式转化为Opencv的Mat格式

在图像处理领域opencv是我们常用的,ImageMagick也是使用的图像处理软件之一,在这里面有时候常常有内部结构的相互转换,这里先贴出一个image++中的Magick::Image格式转为Opencv中的Mat格式

int magick2IplImage(Magick::Image magickImage,cv::Mat &imgMat)
{
	//get width height
	int WIDTH  = magickImage.columns();
	int HEIGHT = magickImage.rows();

	//imWrite to IplImage
	IplImage *cvImage = cvCreateImage( cvSize(WIDTH, HEIGHT), IPL_DEPTH_8U, 4 );
	char* block = (char*)malloc(cvImage->imageSize);
	magickImage.write(0,0, WIDTH, HEIGHT, "BGRA", CharPixel, block);

	//OpenCV part
	memcpy(cvImage->imageData, block,cvImage->imageSize );
	imgMat = cv::Mat(cvImage);

	//imwrite("image.jpg",imgMat);
	free(block);

	return 0;
}


你可能感兴趣的:(ImageMagick++格式转化为Opencv的Mat格式)