【发布时间】:2020-08-27 21:36:14
【问题描述】:
我正在尝试将单通道图像合并为一张多通道图像。但它在合并功能处显示错误:
cv::内存位置异常
代码:
#include <vector>
#include <opencv2/opencv.hpp>
using namespace cv;
using namespace std;
int main() {
Mat input = imread("a jpeg image");
Mat B, G, R, merged;
vector<Mat> channels(3), channels2(3);
//-- split
split(input, channels);
B = channels[0];
G = channels[1];
R = channels[2];
//-- merge
channels2.push_back(B);
channels2.push_back(G);
channels2.push_back(R);
merge(channels2, merged);
imshow("merged", merged);
waitKey(0);
return 0;
}
我在 Windows 上使用 Visual Studio。 我该如何解决这个问题?
附:我的最终目标是将 4 个图像(即蓝色、绿色、色调和灰度)合并为一个 4 通道,并将其用作mean 函数的输入。这适用于 Mat 对象吗?或者第三个通道必须是红色,第四个通道必须是 alpha?
【问题讨论】: