如何从图像获取x,y坐标以生成热图Python

问题描述

我是编程初学者。我正在使用图像,并且想用简单的代码(一开始)对其进行分析。

我有在白色背景上带有黑点的图像(JPEG文件)。我想创建一个热图或稠密的地图,以标识出我拥有很多点和很少有点的区域。

我看到有些人在使用histogram2d,必须输入x和y坐标。我知道图像是一个数组,因此它包含像素的x,y坐标,但是我不知道如何访问它们以使用例如histogram2d函数。有人能帮我吗?由于我是初学者,所以我想提供一些解释,如果有人可以这么好地解释它,我将非常感谢。

也许我还可以使用另一种功能来实现这种方法。如果是这样,请给我一些建议

预先感谢您对我的帮助。

我意识到我需要先拿到黑锅。所以我调整了代码:

import cv2
import numpy as np
import matplotlib.pyplot as plt
import random


#read image
img = cv2.imread("C:\\Users\\die5k\\Desktop\\NeuerOrdner\\eins.jpg")

#make Numpy array from image
n = np.array(img)

#search black pixels
#and gives an array of x and y coordinates of black pixels
#blacks = np.where((n[:,:,0:3] == [0,0]).all(2))

xcoords,ycoords = np.where((n[:,0]).all(2))

print(xcoords)
print(ycoords)

当我像上面那样单独尝试第一部分时,效果很好,我得到了两个具有x和y坐标的数组!所以我将两个代码放在一起:

import cv2
import numpy as np
import matplotlib.pyplot as plt


def getcoordinates(img):
    #make Numpy array from image
    n = np.array(img)

    #search black pixels
    #and gives an array of x and y coordinates of black pixels
    xcoords,0]).all(2))

    print(xcoords)
    print(ycoords)


def getHistogramm(xcoords,ycoords):
    plt.hist2d(xcoords,ycoords,bins=50,cmap=plt.cm.jet)

    plt.title("test")

    plt.savefig("test1",bbox_inches='tight')

    plt.close()


if __name__ == '__main__':
    img = cv2.imread("C:\\Users\\die5k\\Desktop\\NeuerOrdner\\eins.jpg",0)
    getcoordinates(img)
    getHistogramm(xcoords,ycoords)

然后我得到一个我不明白的错误。

(注释)C:\ Users \ die5k \ Desktop \ NeuerOrdner> python combi.py 追溯(最近一次通话): 在第31行的文件“ combi.py”中 getcoordinates(img) 在getcoordinates中的文件“ combi.py”,第13行 xcoords,ycoords = np.where(((n [:,:: 0:3] == [0,0])。all(2)) IndexError:数组的索引过多:数组是二维的,但是3个被索引了

出了什么问题?

通过这种方式,我切割了原始图像,使其仅包含一个黑点用于尝试代码。

我有一个图像示例: enter image description here

我希望在此网站上显示类似的内容:https://python-graph-gallery.com/86-avoid-overlapping-in-scatterplot-with-2d-density/

解决方法

暂无找到可以解决该程序问题的有效方法,小编努力寻找整理中!

如果你已经找到好的解决方法,欢迎将解决方案带上本链接一起发送给小编。

小编邮箱:dio#foxmail.com (将#修改为@)

相关问答

错误1:Request method ‘DELETE‘ not supported 错误还原:...
错误1:启动docker镜像时报错:Error response from daemon:...
错误1:private field ‘xxx‘ is never assigned 按Alt...
报错如下,通过源不能下载,最后警告pip需升级版本 Requirem...