【问题标题】:How to remove the white border from my heat map using python如何使用python从我的热图中删除白色边框
【发布时间】:2019-01-16 16:37:47
【问题描述】:

我在 python3 中使用 seaboard 生成了 2000 个热图。问题是它也会产生白色边框。我只想保存热图。我想删除这些白色边框,因为我想根据这些热图训练我的模型,并且我认为拥有这些边框可能会弄乱结果。因为每个热图都有这个边界,所以有这些边界是否重要?

我为生成这些热图而编写的代码。

for i in range(len(h1)):
    ax = sns.heatmap(h1[i], yticklabels = False,xticklabels = False, cbar = False)
    fig = ax.get_figure()
    fig.savefig(path.join(outpath,"neutral_{0}.png".format(i)))

实际热图

我想要的:

【问题讨论】:

    标签: python-3.x conv-neural-network heatmap


    【解决方案1】:

    如果你真的有相同大小的热图图片,你可以尝试多修剪一步。

    使用PIL(pillow) 模块来完成这项工作。

    例如:

    from PIL import Image
    
    for i in range(len(h1)):
        im = Image.open("neutral_{0}.png".format(i))
        im = im.crop((left, upper, right, lower)) # You have to adjust parameter here
        #im = im.crop((100, 75, 300, 150)) # ↓ 
        # you will get an image which size is (width=200, height=75)
        im.save("neutral_crop_{0}.png".format(i))
    
    

    这些参数的坐标(左、上、右、下)是从输入图像的左上角开始测量的。

    【讨论】:

    • 我试过这个但我得到一个错误:系统错误:瓷砖不能延伸到图像之外
    • 确保您的参数是从您的输入图像左上角测量的。 rightlower 不是您的新图像的宽度和高度。