python opencv图像增强

图像增强,使用常见算法,比如gamma校正,直方图均衡化等。

下面一些代码仅供参考,使用包括图像锐化,提高图片清晰度,其实就是对比度增强。

# Gamma correction and the Power Law Transform,伽马校正也称幂律交换;使图像变得更亮或者更暗的方法;
# USAGE
# python adjust_gamma.py --image images/_L3A4387.jpg

# 导入必要的包
from __future__ import print_function
import numpy as np
import argparse
import cv2
import imutils


# 伽马校正
# --image 要对其应用伽玛校正的图像。
# --gamma (可选)伽玛值,默认1.0
def adjust_gamma(image, gamma=1.0):
    # 建立查找表,将像素值[0,255]映射到调整后的伽玛值
    # 遍历[0,255]范围内的所有像素值来构建查找表,然后再提高到反伽马的幂-然后将该值存储在表格中
    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 图像路径
# ap = argparse.ArgumentParser()
# ap.add_argument("-i", "--image", required=True,
#                 help="path to input image")
# args = vars(ap.parse_args())

# 加载原始图像
# original = cv2.imread(args["image"])
filename = "dst0.jpg"
original = cv2.imread(filename)
# original = imutils.resize(original, width=300)

# 通过使用各种伽玛值并检查每个图像的输出图像来探索伽玛校正;
# 遍历各种不同的伽马值
for gamma in np.arange(0.0, 2, 0.5):
    # 忽略伽马值为1的情况,因为跟原始图像没有任何差别
    if gamma == 1:
        continue

    # 应用伽马校正并展示图像
    gamma = gamma if gamma > 0 else 0.1
    adjusted = adjust_gamma(original, gamma=gamma)
    # cv2.putText(adjusted, "g={}".format(gamma), (10, 30),
    #             cv2.FONT_HERSHEY_SIMPLEX, 0.8, (0, 0, 255), 3)
    cv2.imshow("Images", np.hstack([original, adjusted]))
    name = str(filename).replace(".jpg", "_" + str(gamma) + ".jpg")
    cv2.imwrite(name, adjusted)
    cv2.waitKey(0)

 

 

 

 

  • 2
    点赞
  • 12
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

落花逐流水

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值