我将图片的颜色转换为LAB,如下所示:

import cv2
imbgr=cv2.imread('photo.jpg')
imlab=cv2.cvtColor(imbgr,cv2.COLOR_BGR2LAB)
cv2.imwrite('lab.jpg',imlab)

返回具有imlab [x,y]的像素,如何绘制具有这些值的图形?

#1楼 票数:4 已采纳

这是一些如何将图像和图形图像数据显示为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()

这是由代码生成的图像,如下所示。

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

在此处输入图片说明

图(1)-LAB图像和单个通道

在此处输入图片说明

图(2)-第一个LAB通道的轮廓图

在此处输入图片说明

图(3)-第一个LAB通道的表面图

在此处输入图片说明

  ask by Tecnologia da Net translate from so

未解决问题?本站智能推荐:

1回复

绘制直方图以找出图像上梯度的最大强度

我有这张图其中我想使用 sobel 过滤器执行梯度计算: 我想将g值绘制成直方图,以确定图像中梯度强度的范围。 当我尝试histr = cv2.calcHist([g], [0], None, [256], [0, 256]) ,它给了我以下错误: 类型错误:不支持图像数据类型 = 23 我想知道
1回复

合并图像直方图的相似分箱

我正在使用 Python(没有 AI,只有经典工具)进行 CV 项目,但遇到了问题。 我正在尝试从已知的 ROI 中检测手部和肤色,该 ROI 的手部在白色背景上(因为它是使用网​​络摄像头的,所以颜色可能不准确——例如,灰色对我来说可能被视为白色)。 我试着做一个颜色的直方图,从那里我将提取手的颜
2回复

如何计算两个图像之间的DeltaE

我目前正在尝试使用 OpenCV 确定我们的输出图像与使用 Python 绘制的莫奈画之间的色差。 通过我的研究,我发现 Delta E 是确定色差的最佳选择。 我尝试使用提取两个图像的 BGR 通道,然后采用用于计算每个颜色通道差异的平均“蓝色”、“绿色”和“红色”颜色。 我收到每个颜色通道的色差
4回复

从直方图密度自动查找最佳图像阈值

我希望在显示器上执行光学字符识别(OCR),并希望程序在不同的光照条件下工作。 为此,我需要处理和阈值图像,使每个数字周围没有噪声,允许我检测数字的轮廓并从那里执行OCR。 我需要使用的阈值适应这些不同的光照条件。 我尝试过自适应阈值处理,但我无法让它工作。 我的图像处理很简单:加载图
2回复

如何使用OpenCV计算类似skimage的图像直方图?

在之前创建的代码中,直方图是使用skimage模块计算的,方法如下: 但是,现在,由于某些原因,我不能使用skimage而只能使用 OpenCV。 所以,当我尝试 skimage h和 OpenCV 的h的输出不同,此后的代码中断。 那么,我该怎么做才能使 OpenCV 的直方图输出与以前相同?
2回复

使用直方图的图像pythonopencv中的颜色百分比

我是python和图像处理的初学者。 我想使用直方图函数从图像中找到棕色的百分比。 我做了直方图功能,但我不知道如何找到图像中棕色的百分比。 这是我的python代码 我使用的图像 我有这个代码的输出
1回复

从直方图曲线中选择最佳值范围

场景: 我试图跟踪两个不同的彩色物体。 开始时,提示用户将第一个彩色对象(例如,可能是红色)保持在相机前面的特定位置(在屏幕上用矩形标记)并按任意键,然后我的程序获取该部分帧(ROI)并分析其中的颜色,找到要跟踪的颜色。 同样对于第二个对象也。 然后像往常一样,在HSV颜色平面中使用c
1回复

如何使用图像中每个像素的颜色绘制图形?

我正在研究图像颜色识别,因此我将RGB图像转换为Lab,因为它是人类视觉最接近的色彩空间。 之后,我获得了Lab的3个频道中的每个频道,并且我想在3D图形中绘制我在转换后的图像中识别的颜色变化。 如何使用图像的颜色绘制图形? 出口: