python - 图像未转换为灰度
问题描述
我已经通过 OpenCV 读取了一个文件夹中的所有图像。然后转换为灰度,使用pyplot
我显示的所有图像。但不是灰度图像看起来像黄色。
import glob
import cv2
import matplotlib.pyplot as plt
from skimage.color import rgb2gray
images = [cv2.imread(file) for file in glob.glob(r"C:\Users\USER\Handcrafted dataset/*.jpg")]
for img in images:
img = rgb2gray(img)
plt.figure(figsize=(10,10))
plt.imshow(img)
样本输出:
我应该怎么做才能将它们转换为正确的灰度图像?
解决方案
这是因为 Matplotlib 在绘制单个通道时使用了颜色图。在他们的文档中有一个声明说:
输入可以是实际的 RGB(A) 数据,也可以是 2D 标量数据,它们 将被渲染为伪彩色图像。
cmap='gray'
注意:要实际显示灰度图像,请使用参数、vmin=0
、设置颜色映射vmax=255
。
因此,将最后一行更改为:
plt.imshow(img, cmap='gray')
这将使用灰色映射绘制通道。
推荐阅读
- nuxt.js - 从文档类型中获取所有标签
- c# - 如何使用类或 ViewModel 作为带有 DataTemplate 的 ListView 的数据源,无需编译即可在设计视图中显示?
- swift - 在 SwiftUI 中通过 Date() 读取星期几以获取本地通知
- javascript - 获取系统时间、本地存储、比较日期并执行操作
- python - 如何完全停止使用 System.Diagnostic.Process.Start 启动的 .bat 文件(和子进程)
- java - Spring could config server 目录组织与 searchPaths 不起作用
- react-router - React Router 专注于未记录或丢失的路由更改
- javascript - 在打字稿中提取道具以分离Vue组合API中的模块
- reactjs - 尝试通过 React Navigation 了解在这种情况下 useCallback 的使用
- tableau-api - 将数据源上传到服务器正在删除计算字段?