python - 如何使用 OpenCV 将色彩图应用于灰度数据

标签 python opencv video grayscale colormap

我有一个带有灰度图像的 np.array,我想应用颜色图,然后将结果保存到视频文件中。

使用这段代码(或使用注释行)我无论如何都会得到一个灰度视频。知道为什么我没有色彩图视频吗?

color_images = np.empty([N, resolution[1], resolution[0], 3])
for i in range(0, N):
    cv2.imwrite(gray_images[i])
    color_images[i] = cv2.cvtColor(np.float32(gray_images[i]), cv2.COLOR_GRAY2BGR)
    #color_images[i] = cv2.merge([gray_images[i], gray_images[i], gray_images[i]])
out = cv2.VideoWriter("video.mp4", cv2.VideoWriter_fourcc(*'mp4v'),
                      fps, (resolution[0], resolution[1]), 1)
for i in range(0, N):
    out.write(np.uint8(color_images[i]))
out.release()

更新:我想要一个彩色图像,以便像素强度的差异更加明显。 (例如,在 plt.imshow ('viridis') 中使用默认的 cmap)。

最佳答案

cvtColor 不会这样做。对于任何灰度像素,它都会为您提供看起来具有相同强度的灰色的 RGB/BGR 像素。

如果您想要颜色图,则需要applyColorMap

import numpy as np
import cv2 as cv

gray_image = ... # get it from somewhere

colormapped_image = cv.applyColorMap(gray_image, cv.COLORMAP_JET)

lena and COLORMAP_JET

learn more here

关于python - 如何使用 OpenCV 将色彩图应用于灰度数据,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/70168026/

相关文章:

python - 包含 vector 外积的方程

python - 如何搭建chef环境,运行Django,发送邮件

python - 无法在 OSX 中的 python 中导入 cv2

video - 有没有办法在 OpenAI gym 中禁用视频渲染,同时仍在录制?

javascript - 使用 Javascript 或 PHP 更改视频的颜色类型

video - 来自运动检测的 FFMPEG 输出为灰色

python - Django 迁移

python/numpy 对掩码数组(和/或选择性排名)进行二维内核排名过滤的最快方法

java - 在 Opencv 中打印检测到的人脸附近的名字?

c++ - Visual Studio C++ 中的 opencv 没有输出