首页 > 解决方案 > 如何将图像数据制作成二维分布图?

问题描述

如何将图像数据制作成二维分布图?我想将图像日期可视化为二维分布。这可能吗 ?

像 MNIST 一样的图像:在此处输入图像描述

像这样的二维分布:在此处输入图像描述

标签: deep-learning

解决方案


关于mnist,我认为这并不意味着什么。因为你有一个二值图像通道,所以你只有零个或一个。所以你不能有这样的情节。

但是如果你有grayscale图像或colored图像,你可以这样做:
源图像:
资源

import cv2
from matplotlib import pyplot as plt

img = cv2.imread('img.jpg', -1)
cv2.imshow('image',img)

color = ('b','g','r')
for channel,col in enumerate(color):
    histr = cv2.calcHist([img],[channel],None,[256],[0,256])
    plt.plot(histr,color = col)
    plt.xlim([0,256])
plt.title('Histogram for color scale picture')
plt.show()

cv2.destroyAllWindows()

三通道 cv2

如果您的图像是灰度图像:

# 1 channel image - grayscale
import cv2
from matplotlib import pyplot as plt

gray_img = cv2.imread('mnist.png')
cv2.imshow('image',gray_img)
hist = cv2.calcHist([gray_img],[0],None,[256],[0,256])
plt.hist(gray_img.ravel(),256,[0,256])
plt.title('Histogram for gray scale picture')
plt.show()

cv2.destroyAllWindows()

灰度 cv2

方法是matplotlib

import matplotlib.image as mpimg
from matplotlib import pyplot as plt

img=mpimg.imread('img.jpg')
imgplot = plt.imshow(img)
plt.hist(img.ravel(), bins=256, fc='k', ec='k')

matplotlib


推荐阅读