pyqtgraph heapmap 热图 伪彩色

如何设置?

核心代码:

self.IVNetwork = pg.ImageView()
self.IVNetwork.ui.menuBtn.setVisible(False)
self.IVNetwork.ui.roiBtn.setVisible(False)
# self.IVNetwork.ui.histogram.setVisible(False)


self.winDDD.verticalLayout_11.addWidget(self.IVNetwork)

self.IVNetwork.setImage(dynamicMI)
colors = [
    (0, 0, 0),
    (45, 5, 61),
    (84, 42, 55),
    (150, 87, 60),
    (208, 171, 141),
    (255, 255, 255)
]
cmap = pg.ColorMap(pos=np.linspace(0.0, 1.0, 6), color=colors)
self.IVNetwork.setColorMap(cmap)

示例代码:

def slotCreateDDD(self):
    # "创建Dynamics Degree Distribution Windows"
    # 默认 Dynamic of MI 的matlab矩阵已经算好了
    self.winDDD = uic.loadUi(r'./GUI/DynamiceDegreeDistribution.ui')
    self.winDDD.setWindowTitle("Dynamic of degree distribution")

    self.IVDistribution = pg.ImageView()
    self.IVDistribution.ui.menuBtn.setVisible(False)
    self.IVDistribution.ui.roiBtn.setVisible(False)
    self.IVDistribution.ui.histogram.setVisible(False)

    self.IVNetwork = pg.ImageView()
    self.IVNetwork.ui.menuBtn.setVisible(False)
    self.IVNetwork.ui.roiBtn.setVisible(False)
    # self.IVNetwork.ui.histogram.setVisible(False)

    self.winDDD.verticalLayout_4.addWidget(self.IVDistribution)
    self.winDDD.verticalLayout_11.addWidget(self.IVNetwork)

    # 加载提前计算好的Dynamics of MI array
    dynamicMatrixDataPath = r'D:\PythonProject\QTNLS\TNCalciumAnalysis\dynamicMI.mat'
    mat = scio.loadmat(dynamicMatrixDataPath)
    dynamicMI = mat['dynamicMI']

    #设置成热图  有些问题,不好好搞。pyqtGraph的API设计得不行。
    self.IVNetwork.setImage(dynamicMI)
    colors = [
        (0, 0, 0),
        (45, 5, 61),
        (84, 42, 55),
        (150, 87, 60),
        (208, 171, 141),
        (255, 255, 255)
    ]
    cmap = pg.ColorMap(pos=np.linspace(0.0, 1.0, 6), color=colors)
    self.IVNetwork.setColorMap(cmap)

    #请把distribution也渲染出来;
    dynamicDistribution = None
    #先打印出来把

    frames = dynamicMI.shape[0]
    numNeurons = dynamicMI.shape[1]
    thres = 3.1

    dynamicDistribution = np.ones((frames, 512, 512, 4))
    dynamicDistributionDataPath = r'D:\PythonProject\QTNLS\resources\dynamicDistribution.npy'
    if os.path.exists(dynamicDistributionDataPath):
        dynamicDistribution = np.load(dynamicDistributionDataPath)
    else:
        for t in range(frames):
            print(t)
            G = nx.Graph()
            for i in range(numNeurons):
                for j in range(i, numNeurons):
                    if dynamicMI[t,i,j] > thres:
                        G.add_edge(i,j)
            # print(G.degree())
            degree_sequence = sorted([d for n, d in G.degree()], reverse=True)
            fig, ax = plt.subplots(figsize=(4, 4), dpi=128)
            ax.bar(*np.unique(degree_sequence, return_counts=True))
            ax.set_xlim(xmin = 0, xmax = numNeurons)#度分布,最大的度就是所有人都连上了
            ax.set_ylim(ymin = 0, ymax = 15)#度分布,最大的度就是所有人都连上了
            ax.set_title("Degree histogram")
            ax.set_xlabel("Degree")
            ax.set_ylabel("# of Nodes")

            buf = io.BytesIO()
            fig.savefig(buf, format='raw', dpi=128)
            buf.seek(0)
            img_arr = np.frombuffer(buf.getvalue(), dtype=np.uint8)
            buf.close()

            plt.cla()
            plt.close("all")

            w, h = fig.canvas.get_width_height()
            im = img_arr.reshape((int(h), int(w), -1))
            im = im.transpose((1, 0, 2))
            dynamicDistribution[t,:,:,:] = im
        np.save(dynamicDistributionDataPath,dynamicDistribution)
    self.IVDistribution.setImage(dynamicDistribution)
    self.winDDD.show()

 

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
### 回答1: 彩色增强是一种常见的像处理技术,用于增强像的可视化效果。在Matlab中,我们可以利用内置函数和工具箱来实现彩色增强。 首先,我们需要加载像并将其转换为灰度像。可以使用imread函数来加载像,并用rgb2gray函数将其转换为灰度像。 接下来,我们可以使用colormap函数选择一种合适的彩色映射方案。彩色映射方案是一组预定义的颜色映射表,根据像的灰度级别将其映射到相应的颜色。 然后,我们可以使用imagesc函数将灰度像进行彩色增强处理。imagesc函数会将灰度像映射到指定的彩色映射方案,并显示增强后的像。 最后,我们可以使用colorbar函数添加一个颜色例,方便观察者理解像的灰度级别与对应的颜色之间的关系。 举个例子,我们可以考虑一个医学像,如X射线像,以说明彩色增强的应用。我们可以使用imread函数加载像,然后使用rgb2gray函数将其转换为灰度像。然后,可以选择colormap函数提供的彩色映射方案。接下来,我们可以使用imagesc函数对灰度像进行彩色增强处理。最后,可以使用colorbar函数添加一个颜色例。 通过这些步骤,我们可以使用Matlab实现彩色增强,并获得一幅增强后的像,以便更好地展示和分析像信息。这在医学像处理和遥感像处理等领域都有广泛应用。 ### 回答2: 彩色增强是一种像处理技术,常用于增强像的对比度和可视性。在Matlab中,我们可以使用各种方法实现彩色增强。例如,我们可以使用以下步骤进行处理。 首先,加载需要处理的像。我们可以使用`imread`函数加载像,并将其存储为一个矩阵。 然后,我们可以对像进行预处理。这可能包括调整像的大小、切割像的部分或者进行像去噪等。这一步骤的目的是为了使像处理更加有效。 接下来,我们可以使用彩色增强方法来增强像的对比度和可视性。常见的方法包括灰度拉伸、直方均衡化、彩色映射等。这些方法可以通过Matlab中的各种函数实现,比如`imadjust`、`histeq`和`ind2rgb`等。 最后,我们可以显示和保存处理后的像。使用`imshow`函数可以在Matlab中显示像。如果需要保存像,可以使用`imwrite`函数将像保存到指定位置。 在彩色增强案例中,我们可以选择使用不同的彩色映射方法,如、彩虹、孤立点等。这些映射方法可以根据像的特点和需求进行选择。 总之,Matlab提供了强大的像处理工具和函数,可以实现各种像增强技术,包括彩色增强。通过选择合适的方法和参数,我们可以有效地增强像的对比度和可视性。 ### 回答3: Matlab可以利用彩色增强技术对像进行处理和增强。彩色增强是一种通过对像进行颜色映射来突出显示像的特定信息的方法。 例如,考虑一幅黑白的医学像,如X射线或MRI像。这些像在灰度级别上显示不同的组织结构,但缺乏鲜明的对比度和可区分性。通过应用彩色增强技术,我们可以将这些像转换为彩色像,以更直观和易于解读的方式显示组织结构和异常。 在Matlab中实现彩色增强,我们可以使用`colormap`函数来选择颜色映射方案。常见的彩色增强方案包括、彩虹和灰度映射。这些颜色映射方案可以通过在像的灰度级别和颜色之间进行插值来应用于原始像。 例如,我们可以从灰度的医学像中使用来突出显示异常区域。在Matlab中,我们可以使用`imagesc`函数显示增强的像,并使用`colormap`函数将应用到像上。这样,原始的医学像将被转换为彩色像,其中亮度与原始像中的亮度对应,颜色根据颜色映射方案分配。 同样,我们可以使用彩虹或灰度映射来实现不同的效果和突出显示像中的不同特征。通过调整颜色映射方案的参数,我们可以进一步控制像的对比度和可读性。 总结而言,Matlab中的彩色增强案例可通过选择和应用合适的颜色映射方案来对像进行处理和增强。这种方法可以增强像的可读性,并使特定信息更易于观察和理解。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值