opencv 显示以数字形式显示像素值的图像

fslejnso  于 2023-03-19  发布在  其他
关注(0)|答案(2)|浏览(122)

我正在寻找OpenCV或其他Python函数,它将NumPy数组显示为如下图像:

引用自this tutorial

  • 什么函数可以创建这种带有像素值显示的灰度图像?
  • 是否有彩色图像的等价物?

MATLAB有一个叫做showPixelValues()的函数。

acruukt9

acruukt91#

最好的方法是搜索“热图”或“混淆矩阵”而不是图片,这时有两个不错的选择:
1.仅使用matplotlib,将imshow()text()作为构建块,解决方案实际上并不那么难,下面是some examples
1.使用seaborn,这是一个数据可视化包,解决方案本质上是一个使用seaborn.heatmap()的一行程序,如these examples所示。
我的问题真的是目光短浅,从一个图像处理的心态来,而不是考虑其他社区有什么需要显示同样的东西,即使他们用不同的名字称呼它。

odopli94

odopli942#

使用matplotlib可以执行以下操作:

image = np.random.randint(low=0, high=255, size=(10, 10))

fig, ax = plt.subplots()
ax.imshow(image, cmap='gray')

for i in range(image.shape[0]):
    for j in range(image.shape[1]):
        ax.text(j, i, str(image[i, j]), color='r', ha='center', va='center')

它将生成以下图像:

顺便说一下,如果您只想使用灰度,您可能需要尝试以下方法:

for i in range(image.shape[0]):
    for j in range(image.shape[1]):
        c = 1 if image[i, j] < 128 else 0
        ax.text(j, i, str(image[i, j]), color=(c, c, c), ha='center', va='center')
        ax.axis("off")

导致:

相关问题