首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >是否可以使用OpenCV的LUT进行部分gamma调整?

是否可以使用OpenCV的LUT进行部分gamma调整?
EN

Stack Overflow用户
提问于 2020-03-05 15:52:51
回答 1查看 143关注 0票数 1

根据OpenCV Gamma Correction的说法,我们可以通过OpenCV的LUT()来调整整个图像的灰度

代码语言:javascript
运行
复制
def adjust_gamma(image, gamma=1.0):
    invGamma = 1.0 / gamma
    table = np.array([((i / 255.0) ** invGamma) * 255
        for i in np.arange(0, 256)]).astype("uint8")

    return cv2.LUT(image, table)

我想知道是否有可能做部分伽马校正?

例如,这是一个曝光不足的玩偶:

我只想调整玩偶的灰度,并保持其他部分不变。

我读过official doc of OpenCV,似乎没有指定特定图像的局部位置的参数。

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2020-03-05 17:05:21

你可以将图像的Numpy切片传递给你的函数,但你会在边缘周围得到一个丑陋的不连续。

代码语言:javascript
运行
复制
#!/usr/bin/env python3

import cv2
import numpy as np

def adjust_gamma(image, gamma=1.0):
    invGamma = 1.0 / gamma
    table = np.array([((i / 255.0) ** invGamma) * 255
        for i in np.arange(0, 256)]).astype("uint8")

    return cv2.LUT(image, table)

image = cv2.imread('doll.jpg')
image[200:1600, 800:2100] = adjust_gamma(image[200:1600, 800:2100], 3)

票数 2
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/60540494

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档