如何使用坐标点在图像上创建热图?

2023-12-19

我有一张尺寸为 1024 x 1360 的病理图像。我有一些区域和坐标点的概率值。如何使用图像上的坐标点和概率值编写热图生成代码。下面给出了概率值 (.csv) 文件格式的详细信息。任何帮助将不胜感激。

Edit:

CSV 文件格式下载 .csv 文件 http://www.sharecsv.com/s/778b94405b5fcef11d88d66efa717837/Sheet1.csv

CSV 文件的内容:

(x,y)        (x, y+y1)    (x+x1, y)    (x+x1, y+y1) Probability value
(0,0)        (0, 5)       (10, 0)      (10, 5)      0.5
(50,45)      (50, 65)     (55, 45)     (55, 65)     0.9
(100, 150)   (100, 200)   (120, 150)   (120, 200)   0.3
(1000, 1005) (1000, 1010) (1005, 1005) (1005, 1010) 1

应生成热图的示例图像 [![在此处下载图像][2]][2]

预期的热图类型 [![图像上生成的热图应该是这样的][3]][3]

应用@Paradox代码后生成的结果[![生成的输出][4]][4]

补充说明:

“p”是在该特定区域患有或不患有癌症的概率值。我从整个幻灯片图像中提取了所有大小为 256 x 256 的补丁,并计算了每个补丁的“概率值”。现在,根据该值,我计划生成热图。但是通过使用你的代码我得到了像上面这样的输出。甚至连颜色条都不见了。请帮忙。


清理生成热图的数据

首先,如果您对深层嵌套数据感到不舒服,则应该清理 CSV 文件中的数据(它们不统一并且有重复项 - 如果您想要矩形,它们也容易出错)。

最简单的例子如下:

 x, y, x1, y1, Probability value
 0, 0, 5, 10, 0.5
 50, 45, 55, 65, 0.9
 100, 150, 120, 200, 0.3
 1000, 1005, 1005, 1010, 1

下面的答案是根据这个干净的 CSV 数据集编写的。

使用Pandas处理CSV数据文件

查看您的用例,我建议使用pandas为了处理您的 CSV 数据文件。

您可以将 CSV 文件中的数据存储在pandas数据框这样:

df = pd.read_csv("data.csv")

并使用第一行作为每个列值的键来迭代行,如下所示:

for index, row in df.iterrows():
    print(row["x"], row["y"], row["x1"], row["y1"], 
      row["Probability value"]         

完整的工作片段

这段代码不是很漂亮,但它适用于虚拟数据集 https://en.wikipedia.org/wiki/Dummy_data您已经提供了上述介绍,并且其目的是非常不言自明的。可能需要一些调整,特别是对于绘图部分.

#!/usr/bin/python3
import numpy as np
import matplotlib.pyplot as plt
import pandas as pd
from skimage import io
from skimage.color import rgb2gray
import matplotlib as mpl
# Read original image
img = io.imread('img.jpg')

# Get the dimensions of the original image
x_dim, y_dim, z_dim = np.shape(img)

# Create heatmap
heatmap = np.zeros((x_dim, y_dim), dtype=float)

# Read CSV with a Pandas DataFrame
df = pd.read_csv("data.csv")

# Set probabilities values to specific indexes in the heatmap
for index, row in df.iterrows():
    x = np.int(row["x"])
    y = np.int(row["y"])
    x1 = np.int(row["x1"])
    y1 = np.int(row["y1"])
    p = row["Probability value"]
    heatmap[x:x1,y:y1] = p

# Plot images
fig, axes = plt.subplots(1, 2, figsize=(8, 4))
ax = axes.ravel()

ax[0].imshow(img)
ax[0].set_title("Original")
fig.colorbar(ax[0].imshow(img), ax=ax[0])

ax[1].imshow(img, vmin=0, vmax=1)
ax[1].imshow(heatmap, alpha=.5, cmap='jet')
ax[1].set_title("Original + heatmap")

# Specific colorbar
norm = mpl.colors.Normalize(vmin=0,vmax=2)
N = 11
cmap = plt.get_cmap('jet',N)
sm = plt.cm.ScalarMappable(cmap=cmap, norm=norm)
sm.set_array([])
plt.colorbar(sm, ticks=np.linspace(0,1,N), 
             boundaries=np.arange(0,1.1,0.1)) 

fig.tight_layout()
plt.show()
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

如何使用坐标点在图像上创建热图? 的相关文章

随机推荐

  • MATLAB - 加载文件名存储在字符串中的文件

    我正在使用 MATLAB 处理文件中的数据 我正在编写一个程序 它接受用户的输入 然后在绘制它们的目录中找到特定文件 文件命名为 名称 U 速率 name 是表示计算机名称的字符串 rate 是一个数字 这是我的代码 get user to
  • “npm install -g”有什么作用?

    我正在尝试通过运行从 NPM 安装 Lessnpm install g less在命令行中 我检查了文件安装命令 https www npmjs org doc cli npm install html 在全局模式下 即 在命令后附加 g
  • Firebase UserProfileChangeRequest 不起作用

    我正在尝试创建一个个人资料活动 用户可以在其中更改这些个人资料图片和显示名称 我正在尝试更新用户照片或用户名 名为 CompleteListener task isSuccessful true 但什么也没完成 为什么 更新名称的函数 Fi
  • std::map 和 std::variant 的不完整类型

    考虑这个简化且非常具体的递归变体实现std variant include
  • Pyramid.安全问题:双cookies? cookie 不安全?过期?

    我正在第一次尝试金字塔安全模块 我使用此登录代码来设置 auth tkt view config route name LoginForm request method POST renderer string class LoginFor
  • PHP realpath函数问题

    我似乎无法让 realpath 函数处理变量 有办法解决这个问题吗 当我在函数中使用变量时 它不会返回任何内容 我知道路径名在没有 realpath 函数的情况下也可以工作 但我想将 realpath 函数与我的路径名一起使用 realpa
  • 确保 URI 有效

    我试图确保传递给我的 go 程序的 URL 是有效的 但是 我似乎不知道该怎么做 我以为我可以直接喂它url Parse 但这似乎不起作用 package main import fmt net url func main url err
  • 用于获取合并请求中已更改文件列表的 Azure Repos REST API

    Goal 每当拉取请求获得批准并且审阅者在 azure 存储库中完成 合并 拉取请求时 我想确定该合并请求中的文件列表 根据文件扩展名 我必须触发相应的构建管道 Issue 截至目前 从 azure devOps 门户来看这似乎是不可能的
  • Cassandra 没有地理空间支持是否有原因?

    由于 Cassandra 基于 Dynamo 论文 分布式 自平衡哈希表 BigTable 并且有一些空间索引非常适合该范例 quadkey http msdn microsoft com en us library bb259689 as
  • 从日期数组中找出剩余天数[重复]

    这个问题在这里已经有答案了 我有一个如下所示的数组 combinedBirthdates 03 12 2013 03 12 2013 08 13 1990 12 09 1989 02 06 09 08 03 02 1990 08 22 19
  • 线程“main”中的异常 java.lang.ArrayIndexOutOfBoundsException: 0

    我是学习java的新手 在遵循书中的教程时 我收到了此错误 Exception in thread main java lang ArrayIndexOutOfBoundsException 0 我尝试从网上进行研究以了解有关该错误的更多信
  • 当用户点击 div 外部时如何隐藏 Backbone 中的 div?

    我在 Backbone 中有一个包含内部 div 的视图 我想当用户单击 div 外部时隐藏 div 我不知道如何在视图内设置一个事件 显示 click NOT inner div removeDiv 关于如何执行此操作有什么建议吗 通常的
  • Twig:如何在自定义函数中手动转义?

    我编写了自己的 Twig 函数来输出 HTML 所以我有is safe set to html这样 Twig 就知道不要逃避我的函数的输出 但是 我的函数需要参数 参数之一直接放入输出中 我想在输出它之前转义它 所以看来我只需要能够在输出之
  • Jquery从左到右滑动使div在幻灯片上向上跳跃

    我正在尝试创建一种效果 当单击链接时 它会使初始 div 向左滑动并显示向左滑动的第二个 div 当从第二个 div 单击链接时 div 与第一个 div 一起向右滑动div 也向右滑动 到目前为止 这是我的代码 HTML div a hr
  • 方向改变后移动视口高度

    我正在将一个侦听器附加到orientationchange https developer mozilla org en US docs Web Events orientationchange event window addEventL
  • 在Python 2.5中解码未知unicoding编码的最佳方法[重复]

    这个问题在这里已经有答案了 我完全明白了吗 不管怎样 我正在解析很多 html 但我并不总是知道它的编码是什么 令人惊讶的数字谎言 下面的代码很容易显示我到目前为止所做的事情 但我确信有更好的方法 我们将非常感谢您的建议 import lo
  • 使用Python 2.7.11需要tensorflow会发生ImportError

    I tried pip install tensorflow在 OS X El Capitan 上 它成功了 但是 如果我尝试导入tensorflow 则会发生ImportError 当你知道的时候请告诉我 gt gt gt import
  • Active Directory 本地管理器

    我需要实现一个 Active Directory 本地 管理器 用户可以在其中执行所有任务 例如添加用户 删除用户 分配许可证和分配组等 用户有用户名 密码和域控制器名称 因此他只需登录我的应用程序并管理一切 实际上 物理地安排客户端属性会
  • 轻量级java事务管理[关闭]

    Closed 这个问题不符合堆栈溢出指南 help closed questions 目前不接受答案 我目前正在为主要针对智能手机的回合制持久世界游戏开发游戏服务器 并且我目前正在开始实现持久层 并且我正在寻找一些提示 建议 我最初计划使用
  • 如何使用坐标点在图像上创建热图?

    我有一张尺寸为 1024 x 1360 的病理图像 我有一些区域和坐标点的概率值 如何使用图像上的坐标点和概率值编写热图生成代码 下面给出了概率值 csv 文件格式的详细信息 任何帮助将不胜感激 Edit CSV 文件格式下载 csv 文件