Tec*_*Net 2 python opencv image-processing histogram python-3.x
我将图片的颜色转换为 LAB,如下所示:
import cv2
imbgr=cv2.imread('photo.jpg')
imlab=cv2.cvtColor(imbgr,cv2.COLOR_BGR2LAB)
cv2.imwrite('lab.jpg',imlab)
Run Code Online (Sandbox Code Playgroud)
用 imlab [x, y] 返回像素,如何用这些值绘制图形?
以下是一些如何将图像和图形图像数据显示为 3-d 数据的示例。
第一个和第二个图显示原始 BGR 图像及其各个通道作为 BGR,然后作为 LAB。
第三和第四图显示了使用 LAB 图像的第一个通道作为 3-D 数据的等高线图和表面图。
旁白:注意 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()
Run Code Online (Sandbox Code Playgroud)
这是代码生成的图像,如所列。
Figure(0) - 原始图像和单独的颜色通道
图(1) - LAB 图像和单个通道
图 (2) - 第一个 LAB 通道的轮廓图
图(3) - 第一个 LAB 通道的表面图
归档时间: |
|
查看次数: |
3483 次 |
最近记录: |