使用Python调整屏幕亮度和对比度?

发布于 2024-11-16 07:19:17 字数 1436 浏览 2 评论 0原文

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(3

清眉祭 2024-11-23 07:19:17

这是特定于操作系统的事情,如果没有特定于系统的绑定可能无法实现。

This is something that is OS-specific and probably not doable without system-specific bindings.

罪歌 2024-11-23 07:19:17

我在此处找到了看起来像 Linux 特定配方的内容。

对于 Windows,我认为您需要找出需要在哪个 dll 中调用什么函数(可能是特定于驱动程序)并使用 ctypes 进行所需的调用。

I found what looks like a Linux-specific recipe here.

For windows I think you need to find out what function you need to call in which dll (probably driver-specific) and use ctypes to make the required call.

許願樹丅啲祈禱 2024-11-23 07:19:17

我使用此处定义的方程。

因此,要同时调整对比度和亮度,请对每个像素执行以下操作:

new_value = (old_value - 0.5) × contrast + 0.5 + brightness 

下面是一个很好的函数来完成这项工作:

def brightness_contrast(image, brightness = -100, contrast = 300):
    def vect(a):
        c   = contrast
        b   = 100 * brightness
        res = ((a - 127.5) * c + 127.5) + b
        if res < 0 :
            return 0
        if res > 255:
            return 255
        return res

    transform = np.vectorize(vect)
    data = transform(fromimage(image)).astype(np.uint8)
    return toimage(data)

您可以像这样使用它:

img = Image.open("calibration/gland_89_0.jpg")
brightness_contrast(img, brightness=-20, contrast=200).show()

我认为这个函数应该更好,关于参数。实际上,没有限制,我应该更新代码以以百分比形式进行参数。

I m using the equation define here.

So, to adjust contrast and brightness at the same time, do for each pixel:

new_value = (old_value - 0.5) × contrast + 0.5 + brightness 

Bellow a nice function which do the job :

def brightness_contrast(image, brightness = -100, contrast = 300):
    def vect(a):
        c   = contrast
        b   = 100 * brightness
        res = ((a - 127.5) * c + 127.5) + b
        if res < 0 :
            return 0
        if res > 255:
            return 255
        return res

    transform = np.vectorize(vect)
    data = transform(fromimage(image)).astype(np.uint8)
    return toimage(data)

You can use it like this:

img = Image.open("calibration/gland_89_0.jpg")
brightness_contrast(img, brightness=-20, contrast=200).show()

I think this function should be better, regarding paramaters. Actually, there is no limit, I should update the code to make arguments in percent.

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文