你能为QCustomPlots ColorMap函数分配3个通道的图像数据吗?

时间:2016-02-12 02:37:53

标签: c++ image qt opencv qcustomplot

我正在开发一个图像处理程序。在现阶段,我将CV_64FC3分成3个颜色通道RGB,然后将其用作QCPColorMap的数据。

实施是这样的:

for(int col = 0; col < image.cols; ++col) {
    for(int row = 0; row < image.rows; row++) {
          colorMap->data()->setCell(row,col,rotated_matrix.at<double>(row,col));
    }
 }

rotated_matrix是CV_64FC1 cv :: Mat。这样可以正常工作并相应地显示颜色图。

我的问题是我可以通过3通道cv :: Mat (CV_64FC3)并将其分配给QCPColorMap中的数据点吗?

我查看了documentation,据我所知,colorMap->data()->setCellcolorMap->data()->setData可以接受的唯一变量是keyIndex, valueIndex, z,它们基本上代表x坐标,y坐标,然后是颜色值本身。

我似乎无法找到一种方法来修改要分配的图像中的通道/图层数量。

我在这里错过了什么吗?

干杯 米奇

1 个答案:

答案 0 :(得分:0)

这是一种有点痛苦的方法:将多个QPColorMap实例相互叠加,并使用alpha通道切换选定的实例。我想可以通过这种方式对QPColorMap进行子类化并访问QRgb,但这样会更难。

这似乎是QCustomPlot中修改的目标。我的示例应用程序:显示灰度图像(例如,大脑),其颜色叠加指示感兴趣的区域或激活的&#34;或某种程度上的异常区域。为此,需要访问RBG字段。