【发布时间】:2021-03-13 03:33:14
【问题描述】:
当我在 matplotlib 中使用以下代码时,我可以得到这样的图片:
import cv2
import numpy as np
import matplotlib.pyplot as plt
from skimage.color import rgb2hed
from matplotlib.colors import LinearSegmentedColormap
roi_select = cv2.imread(r"C:\Users\hutao\Desktop\cell.png")
roi_select_11 = rgb2hed(roi_select)
cmap_dab = LinearSegmentedColormap.from_list('mycmap', ['white','saddlebrown'])
plt.imshow(roi_select_11[:,:,0],cmap=cmap_dab)
但是当我使用 OpenCV 时,有我的代码:
def get_mpl_colormap(cmap_name):
cmap = LinearSegmentedColormap.from_list('mycmap', ['white','saddlebrown'])
sm = plt.cm.ScalarMappable(cmap=cmap)
color_range = sm.to_rgba(np.linspace(0, 1, 256), bytes=True)[:,2::-1]
return color_range.reshape(256, 1, 3)
roi_select = cv2.imread(r"C:\Users\hutao\Desktop\cell.png")
image_bgr = cv2.applyColorMap(roi_select[:,:,0],get_mpl_colormap('bwr'))
cv2.imshow('image with colormap', image_bgr)
cv2.waitKey()
我无法获得相同的图片,有 OpenCV 的图片 如何在 OpenCV 中获得与图 2 相同的图片?
我是OpenCV的新手,谢谢你的回答!
【问题讨论】:
-
您似乎从未使用过从
get_mpl_colormap方法获得的参数。我的意思是cmap_name。是多余的吗? -
这里
roi_select_11 = rgb2hed(roi_select)将RGB 转换为HED,但roi_selected不是RGB。在 OpenCV 中,通道的标准是 BGR。 -
@ElyasKarimi 对于你的第二个问题,是的,你是对的,但我无法解决。
-
@ElyasKarimi 对于你的第一个问题,是的,这是我的错,这是多余的。
-
为什么不先把它们转成BGR呢?你可以使用
img_rgb = cv2.cvtColor(roi_select, cv2.COLOR_BGR2RGB)
标签: python opencv matplotlib scikit-image