我正在开发一个图像处理程序。在现阶段,我将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坐标,然后是颜色值本身。
我似乎无法找到一种方法来修改要分配的图像中的通道/图层数量。
我在这里错过了什么吗?
干杯 米奇
答案 0 :(得分:0)
这是一种有点痛苦的方法:将多个QPColorMap实例相互叠加,并使用alpha通道切换选定的实例。我想可以通过这种方式对QPColorMap进行子类化并访问QRgb,但这样会更难。
这似乎是QCustomPlot中修改的目标。我的示例应用程序:显示灰度图像(例如,大脑),其颜色叠加指示感兴趣的区域或激活的&#34;或某种程度上的异常区域。为此,需要访问RBG字段。