python - 将 MatplotLib 应用于 OpenCV 图像
问题描述
当我在 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的新手,谢谢你的回答!
解决方案
为了快速修复,您可以执行
image_bgr = cv2.applyColorMap(255 - roi_select[:,:,0],get_mpl_colormap('bwr'))
cv2.imshow('image with colormap', image_bgr)
cv2.waitKey()
推荐阅读
- html - 如何在启用触摸的情况下将 css 目标写入 Macbook(Retina 显示屏)
- html - 如何使空的div与空间一一保持?
- azure-cosmosdb - 我们可以在 gremlin 的边缘放置和条件吗
- date - 更改 pl/sql 中的变量值
- ruby-on-rails - 如何在rails中组合两个joins.where
- postgresql - 从表中清理文件而不删除 postgresql 9.6.3 中的行
- ios - 如果编程语言发生变化,如何在 iOS 应用商店中更新应用?
- api - 了解单个版本的 GitHub API 响应以查找下载统计信息
- ajax - 当购物车加载短代码时,Woocommerce Cart AJAX 无法正常工作
- angular - Angular 5 - 如何在组件/服务之外注入服务