OpenCV实现图片亮度增强或减弱

 更新时间:2022年08月01日 11:03:59   作者:ʚVVcatɞ  
这篇文章主要为大家详细介绍了OpenCV实现图片亮度增强或减弱,文中示例代码介绍的非常详细,具有一定的参考价值,感兴趣的小伙伴们可以参考一下

本文实例为大家分享了OpenCV实现图片亮度增强或减弱的具体代码,供大家参考,具体内容如下

对每个像素点的三通道值进行同步放大,同时保持通道值在0-255之间

将图像中的像素限制在最小值和最大值之间,超过此区间的值赋值为最小值或最大值

图片亮度增强

import cv2
import numpy as np
import matplotlib.pyplot as plt

img = cv2.imread('1.png', 1)
height, width = img.shape[:2]

dst = np.zeros((height, width, 3), np.uint8)
for i in range(0, height):
    for j in range(0, width):
        (b, g, r) = img[i, j]
        bb = int(b) + 50
        gg = int(g) + 50
        rr = int(r) + 50
        if bb > 255:
            bb = 255
        if gg > 255:
            gg = 255
        if rr > 255:
            rr = 255
        dst[i, j] = (bb, gg, rr)

img = cv2.cvtColor(img, cv2.COLOR_BGR2RGB)
dst = cv2.cvtColor(dst, cv2.COLOR_BGR2RGB)
plt.figure(figsize=(14, 6), dpi=100)  # 设置绘图区域的大小和像素
plt.subplot(121)
plt.imshow(img)
plt.subplot(122)
plt.imshow(dst)
plt.show()

运行结果:

import cv2
import numpy as np
import matplotlib.pyplot as plt

img = cv2.imread('1.png', 1)
height, width = img.shape[:2]

dst = np.zeros((height, width, 3), np.uint8)
for i in range(0, height):
    for j in range(0, width):
        (b, g, r) = img[i, j]
        bb = int(b * 1.3) + 10
        gg = int(g * 1.2) + 15
        if bb > 255:
            bb = 255
        if gg > 255:
            gg = 255
        dst[i, j] = (bb, gg, r)

img = cv2.cvtColor(img, cv2.COLOR_BGR2RGB)
dst = cv2.cvtColor(dst, cv2.COLOR_BGR2RGB)
plt.figure(figsize=(14, 6), dpi=100)  # 设置绘图区域的大小和像素
plt.subplot(121)
plt.imshow(img)
plt.subplot(122)
plt.imshow(dst)
plt.show()

运行结果:

图片亮度减弱

import cv2
import numpy as np
import matplotlib.pyplot as plt

img = cv2.imread('1.png', 1)
height, width = img.shape[:2]

dst = np.zeros((height, width, 3), np.uint8)
for i in range(0, height):
    for j in range(0, width):
        (b, g, r) = img[i, j]
        bb = int(b) - 50
        gg = int(g) - 50
        rr = int(r) - 50
        if bb < 0:
            bb = 0
        if gg < 0:
            gg = 0
        if rr < 0:
            rr = 0
        dst[i, j] = (bb, gg, rr)

img = cv2.cvtColor(img, cv2.COLOR_BGR2RGB)
dst = cv2.cvtColor(dst, cv2.COLOR_BGR2RGB)
plt.figure(figsize=(14, 6), dpi=100)  # 设置绘图区域的大小和像素
plt.subplot(121)
plt.imshow(img)
plt.subplot(122)
plt.imshow(dst)
plt.show()

运行结果:

以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持脚本之家。

相关文章

  • Python Matplotlib 实现3D绘图详解

    Python Matplotlib 实现3D绘图详解

    Matplotlib在二维绘图的基础上,构建了一部分较为实用的3D绘图程序包。本文将为大家详细介绍通过调用该程序包接口绘制 3D散点图、3D曲面图、3D线框图。感兴趣的同学可以了解一下
    2021-11-11
  • Python内建类型str源码学习

    Python内建类型str源码学习

    这篇文章主要为大家介绍了Python内建类型str的源码学习,有需要的朋友可以借鉴参考下,希望能够有所帮助,祝大家多多进步,早日升职加薪
    2022-05-05
  • Python的组合模式与责任链模式编程示例

    Python的组合模式与责任链模式编程示例

    这篇文章主要介绍了Python的组合模式与责任链模式编程示例,组合模式与责任链模式都属于Python的设计模式,需要的朋友可以参考下
    2016-02-02
  • python技巧分享Excel创建和修改

    python技巧分享Excel创建和修改

    这篇文章主要介绍了python技巧分享Excel创建和修改,openpyxl是一个读写Excel文档的Python库,能够同时读取和修改Excel文档。下面来看下文详细介绍,需要的小伙伴可以参考一下
    2022-02-02
  • Python自动操作Excel文件的方法详解

    Python自动操作Excel文件的方法详解

    大家平时在工作与学习中都会操作到Excel文件格式,特别是很多数据的时候,靠人力去识别操作非常容易出错。今天就带大家用Python来处理Excel文件,让你成为一个别人眼中的秀儿
    2022-05-05
  • 简单介绍Python中的几种数据类型

    简单介绍Python中的几种数据类型

    Python基本内置数据类型有很多种,比如:整型(数字)、字符串、元组、列表、字典和布尔类型,下面就来给大家详细介绍下
    2016-01-01
  • 使用Pandas实现高效读取筛选csv数据

    使用Pandas实现高效读取筛选csv数据

    在数据分析和数据科学领域中,Pandas 是 Python 中最常用的库之一,本文将介绍如何使用 Pandas 来读取和处理 CSV 格式的数据文件,希望对大家有所帮助
    2024-04-04
  • 使用python采集Excel表中某一格数据

    使用python采集Excel表中某一格数据

    这篇文章主要介绍了使用python采集Excel表中某一格数据,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友可以参考下
    2020-05-05
  • Python图像处理之透视变换的实战应用

    Python图像处理之透视变换的实战应用

    透视变换(Perspective Transformation)是将图片投影到一个新的视平面(Viewing Plane),也称作投影映射(Projective Mapping),下面这篇文章主要给大家介绍了关于Python图像处理之透视变换的相关资料,需要的朋友可以参考下
    2021-08-08
  • django美化后台django-suit的安装配置操作

    django美化后台django-suit的安装配置操作

    这篇文章主要介绍了django美化后台django-suit的安装配置操作,具有很好的参考价值,希望对大家有所帮助。一起跟随小编过来看看吧
    2020-07-07

最新评论