如何将 3 个 opencv IplImage 合二为一?
Posted
技术标签:
【中文标题】如何将 3 个 opencv IplImage 合二为一?【英文标题】:How to join 3 open cv IplImages into one? 【发布时间】:2010-11-19 18:41:42 【问题描述】:所以我有这样的代码:
IplImage* redchannel = cvCreateImage(cvGetSize(destination), 8, 1);
IplImage* greenchannel = cvCreateImage(cvGetSize(destination), 8, 1);
IplImage* bluechannel = cvCreateImage(cvGetSize(destination), 8, 1);
cvSplit(source, bluechannel, greenchannel, redchannel, NULL);
// code...
//now I need to join them back
如何将 bluechannel、greenchannel 和 redchannel 加入到某个 IplImage* 目的地?
【问题讨论】:
【参考方案1】:void cvMerge(const CvArr* src0, const CvArr* src1, const CvArr* src2, const CvArr* src3, CvArr* dst);
Here is the documentation.
编辑:
来自文档: 您必须致电:
cvMerge(bluechannel, greenchannel, redchannel, NULL, target);
假设您的目标图像也只有 3 个通道。
【讨论】:
hm.. 如果我有 3 张图片,如何获得 4 张图片? 如何创建这样的目标?为什么 IplImage* 目的地 = cvCreateImage(cvSize(w, h),IPL_DEPTH_8U, 3);工作不正常? “工作不正确”非常不具体,你的意思是什么?以上是关于如何将 3 个 opencv IplImage 合二为一?的主要内容,如果未能解决你的问题,请参考以下文章
将灰度、彩色和精巧的图像(3)全部复制到一个大的 IplImage:Opencv 错误?
将 OpenCV IplImage 渲染到 QGLWidget