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

作者:?VVcat? 时间:2022-09-16 00:15:04 

本文实例为大家分享了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()

运行结果:

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

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()

运行结果:

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

图片亮度减弱

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()

运行结果:

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

来源:https://blog.csdn.net/qq_44989881/article/details/117163026

标签:OpenCV,图片亮度
0
投稿

猜你喜欢

  • Python torch.fft.rfft()函数用法示例代码

    2022-02-15 02:03:36
  • 如何利用Python 快速找到最大文件

    2021-08-06 23:22:47
  • php下intval()和(int)转换使用与区别

    2023-06-11 14:09:54
  • CSS 的优先规则

    2009-01-08 12:40:00
  • Go语言基础知识点介绍

    2024-04-26 17:22:50
  • Python第三方包PrettyTable安装及用法解析

    2023-02-22 03:19:16
  • Django模板标签中url使用详解(url跳转到指定页面)

    2023-12-18 00:09:54
  • 如何安装SQL Server 2012群集

    2024-01-14 23:35:09
  • Springboot集成Camunda使用Mysql介绍

    2024-01-22 12:41:36
  • MySQL拼接字符串函数GROUP_CONCAT详解

    2024-01-27 18:21:56
  • Scrapy框架爬取Boss直聘网Python职位信息的源码

    2022-06-30 21:02:47
  • ASP程序中输出Excel文件实例一则

    2008-11-07 15:29:00
  • SQL提供的进行数据传输的实用程序—BCP

    2009-01-23 13:45:00
  • Google投放广告的js的分析

    2008-07-15 11:34:00
  • python list 合并连接字符串的方法

    2021-12-18 09:35:30
  • SQL Server 2005 五个动态管理对象

    2008-12-18 14:50:00
  • windows环境下mysql数据库的主从同步备份步骤(单向同步)

    2024-01-19 16:53:34
  • python实现根据月份和日期得到星座的方法

    2023-02-02 01:05:51
  • python针对mysql数据库的连接、查询、更新、删除操作示例

    2024-01-28 17:11:19
  • PHP中使用BigMap实例

    2024-05-22 10:07:02
  • asp之家 网络编程 m.aspxhome.com