2 october1993 october1993 于 2016.04.06 11:44 提问

cvMat矩阵还原彩色图片

我把一个彩色图像的RGB三个通道像素信息分别放在三个cvMat型矩阵Mat0,Mat1和Mat2中,对矩阵内容进行相关操作后如何再将这三个矩阵还原为一个IplImage型的彩色图像呢?求解答~要具体代码内容

1个回答

sunmc1204953974
sunmc1204953974   2016.04.06 12:09
已采纳

我给题主写下代码吧,有什么问题可以继续追问,直接写的,可能有错

Mat S = imread("...");

// 把一个3通道图像转换成3个单通道图像

vector channels;

split(S, channels);

CvMat imageBlueChannel;
CvMat imageGreenChannel;
CvMat imageRedChannel;

imageBlueChannel = channels.at(0);
imageGreenChannel = channels.at(1);
imageRedChannel = channels.at(2);

//假设操作结束后是这三个矩阵
CvMat BlueChannelResult;
CvMat GreenChannelResult;
CvMat RedChannelResult;

channels.at(0) = &fftBlueChannel;
channels.at(1) = &fftGreenChannel;
channels.at(2) = &fftRedChannel;

Mat Result;

//通道合成
merge(channels, Result);

//我习惯用Mat,不是很清楚IplImage有没有类似的方法,实在不行你再用Mat转IplImage吧
//Mat 转 IplImage
IplImage img = Result;

Csdn user default icon
上传中...
上传图片
插入图片
准确详细的回答,更有利于被提问者采纳,从而获得C币。复制、灌水、广告等回答会被删除,是时候展现真正的技术了!