python - 有什么方法可以使用Python中的颜色曲线来操作图像吗?

标签 python opencv scikit-image

我有一系列的 tif 图像,想知道是否有可能用 python 编写一些东西(可能使用 scikit-image 或 OpenCV)来应用颜色曲线。我拥有的数据如下所示,其中我们有一个 x, y, x, y...数据的列表,如下所示:(0, 0, 32, 22, 64, 56, 128, 128, 192, 196, 255、255)。

enter image description here

最佳答案

根据您提供的新信息,我认为以下代码应该可以解决问题。 lut_in 是输入灰度级的向量,lut_out 是所需的输出级别。这里它适用于所有 3 个 channel (就像在 Photoshop 中一样)。您唯一需要的是插值以获得包含 256 个元素的 LUT(查找表),以适合输入的 256 个灰度级。您可以对其他颜色分辨率应用相同的方法。

import cv2
import numpy as np

image = cv2.imread('apple.jpg')

lut_in = [0, 127, 255]
lut_out = [0, 80, 255]

lut_8u = np.interp(np.arange(0, 256), lut_in, lut_out).astype(np.uint8)
image_contrasted = cv2.LUT(image, lut_8u)

cv2.imwrite('apple_dark.jpg', image_contrasted)

输入:
enter image description here
输出:
enter image description here

关于python - 有什么方法可以使用Python中的颜色曲线来操作图像吗?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/59851952/

相关文章:

python - NDB 中 M 到 M 的结构化查询

python - 用 pandas 读取 hdf5 数据集

python - 如何记录作为函数的参数字符串

python - 从图像中获取颜色并表示它

python - undefined symbol : _ZN2cv3Mat10deallocateEv

python - skimage.transform.resize 导致系统崩溃

python - 从具有不同背景颜色的图像中分割签名

python - 如何使用python将来自传感器的数据插入数组中的特定位置

Android:如何使用硬件加速将图像流编码为 h264?

Python:如何使用 `numpy.all` 和 `numpy.any` 检查一个数组是否包含在另一个数组中?