【问题标题】:How to change the HSV values of an image in python?如何在 python 中更改图像的 HSV 值?
【发布时间】:2016-02-15 19:55:29
【问题描述】:

我能够将图像从 RGB 色彩空间转换为 HSV 颜色空间,但是如何使用 PIL documentation 中所述的 HSV 比例来操作这些值?

img = Image.open("assets/image.png")
img = img.convert('HSV')
img.show()

【问题讨论】:

  • 嗨迈克尔,您想将像素的各个值更改为您选择的任意值吗?如果是这样,您想要的是 Image.putpixel ,您可以在其中传递像素的坐标和您想使用的值pillow.readthedocs.org/en/3.1.x/reference/Image.html
  • 嗨@BenJ,我可能会混淆 HSV 和 HSL,但我想将图像视为在 PhotoShop 中并根据 HSV/HSL 值对其进行操作。
  • 我不是 100% 清楚你究竟想要达到什么目的,但如果你需要改变像素值 putpixel 是要走的路。此文档pillow.readthedocs.org/en/3.1.x/reference/Image.html 非常有用,可能包含您所追求的内容

标签: python python-2.7 python-imaging-library pillow


【解决方案1】:

您可以将图像转换为 NumPy 数组并从那里进行操作。

例如,改变色调:

import numpy as np
from PIL import image

def hue_shift(img, amount):
    hsv_img = img.convert('HSV')
    hsv = np.array(hsv_img)
    hsv[..., 0] = (hsv[..., 0]+amount) % 360
    new_img = Image.fromarray(hsv, 'HSV')
    return new_img.convert('RGB')

【讨论】:

    【解决方案2】:
    If you get HSV images, you can use opencv library.
    
    import argparse.
    import cv2
    ap = argparse.ArgumentParser()
    ap.add_argument("-i", "-image", required = True, help = "Path to the image");
    args = vars(ap.parse_args());
    image = cv2.imread(args["image"]);
    hsv = cv2.cvtColor(image, cv2.COLOR_RGB2HSV)
    

    【讨论】:

    • 如果您向我们解释为什么以及如何编写代码来解决 OP 的问题,我相信这会对社区有所帮助
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2019-03-22
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2021-02-12
    • 1970-01-01
    相关资源
    最近更新 更多