您可以将 3 通道图像数据分配给 QCustomPlots ColorMap 函数吗?
Posted
技术标签:
【中文标题】您可以将 3 通道图像数据分配给 QCustomPlots ColorMap 函数吗?【英文标题】:Can you assign 3 channel image data to QCustomPlots ColorMap function? 【发布时间】:2016-02-12 02:37:53 【问题描述】:我正在开发一个图像处理程序。在现阶段,我将 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()->setCell
或colorMap->data()->setData
可以接受的唯一变量是keyIndex, valueIndex, z
,它们基本上代表 x 坐标、y 坐标和颜色价值本身。
我似乎找不到修改图像中要分配的通道/层数的方法。
我错过了什么吗?
干杯 米奇
【问题讨论】:
我不明白。颜色图只是color palette 的索引图。根据定义,索引是单个值(1 个通道)。为什么要它们是 3 个值(3 个通道)? 我有一个 RGB 图像要进行分析,在某些时候图像将被分割成它的颜色分量,但是我希望在后面的步骤中进行,而不是在这个阶段如果可能的话。 也许更合适的解决方案是在应用颜色图之前将 3 通道图像混合为 1 通道图像 我不知道您的阶段...但是,您是否考虑过使用OpenCV colormaps,并在您的处理步骤中根据需要创建颜色映射图像? 是的,我最初确实实现了 OpenCV Colormap,但不幸的是,它没有在图像旁边显示色阶的选项,这是我真正需要的 【参考方案1】:这是一种有点痛苦的方法:将 QPColorMap 的多个实例相互叠加,并使用 alpha 通道来关闭选定的实例。我想可以继承 QPColorMap 并以这种方式访问 QRgb,但这会更难。
这似乎是 QCustomPlot 中修改的目标。我的示例应用程序:显示灰度图像(例如,大脑),其颜色覆盖表示感兴趣区域或“激活”或某种异常区域。为此,需要访问 RBG 字段。
【讨论】:
以上是关于您可以将 3 通道图像数据分配给 QCustomPlots ColorMap 函数吗?的主要内容,如果未能解决你的问题,请参考以下文章
c_cpp 曾经梦想过将“userInfo”添加到UIAlertView中吗?现在你可以!此类别允许您将任何对象分配给iOS 3.1中的任何对象