0

我正在开发一个图像处理程序。在现阶段,我将 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_matrixCV_64FC1 cv::Mat在哪里。这可以正常工作并相应地显示颜色图。

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

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

我似乎找不到修改图像中要分配的通道/层数的方法。

我在这里错过了什么吗?

干杯米奇

4

1 回答 1

0

这是一个有点痛苦的方法:将 QPColorMap 的多个实例相互叠加,并使用 alpha 通道来关闭选定的实例。我想人们可以继承 QPColorMap 并以这种方式访问​​ QRgb,但这会更难。

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

于 2017-02-05T18:35:50.407 回答