python怎么画三维函数图像_如何用图像的每个像素的值绘制三维图形?

下面是一些如何将图像和图形图像数据显示为三维数据的示例。在

第一个和第二个图显示原始BGR图像及其各个通道作为BGR,然后显示为LAB

第三和第四张图显示了使用实验室图像的第一个通道作为三维数据的等高线图和曲面图。在

旁白:注意imshow()需要一个RGB图像。如果需要,可以使用aspect关键字aspect='equal'或set_aspect(),使等高线图呈正方形。在import cv2

import numpy as np

import matplotlib.image as mpimg

import matplotlib.pyplot as plt

# for the surface map

from mpl_toolkits.mplot3d import Axes3D

imbgr = cv2.imread('Mona_Lisa.jpg')

imrgb = cv2.cvtColor(imbgr, cv2.COLOR_BGR2RGB)

imlab=cv2.cvtColor(imbgr,cv2.COLOR_BGR2LAB)

# Show the original image and individual color channels

plt.figure(0)

plt.subplot(2,2,1)

plt.imshow( imrgb )

plt.subplot(2,2,2)

plt.imshow(imbgr[:,:,0], cmap='Blues')

plt.subplot(2,2,3)

plt.imshow(imbgr[:,:,1], cmap='Greens')

plt.subplot(2,2,4)

plt.imshow(imbgr[:,:,2], cmap='Reds')

plt.show()

# show the LAB space iamge

plt.figure(1)

plt.subplot(2,2,1)

plt.imshow( imrgb )

plt.subplot(2,2,2)

plt.imshow(imlab[:,:,0], cmap='Greys')

plt.subplot(2,2,3)

plt.imshow(imbgr[:,:,1], cmap='cool')

plt.subplot(2,2,4)

plt.imshow(imbgr[:,:,2], cmap='cool')

plt.show()

# contour map

plt.figure(2)

y = range( imlab.shape[0] )

x = range( imlab.shape[1] )

X, Y = np.meshgrid(x, y)

plt.contour( X, Y, imlab[:,:,0], 50 )

plt.show()

# surface map

plt.figure(3)

ax = plt.axes(projection='3d')

y = range( imlab.shape[0] )

x = range( imlab.shape[1] )

X, Y = np.meshgrid(x, y)

ax.plot_surface( X, Y, imlab[:,:,0] )

plt.show()

下面是代码生成的图像,如下所示。在

图(0)-原始图像和单个颜色通道

图(1)-实验室图像和单个通道

图(2)-第一个实验室通道的等高线图

图(3)-第一个实验室通道的表面图

你可能感兴趣的:(python怎么画三维函数图像)