当前位置: 首页 > news >正文

Python----计算机视觉处理(Opencv:图像亮度变换)

一、图像亮度变换

亮度调整:图像像素强度整体变高或者变低。

对比度调整:图像暗处像素强度变低,图像亮处像素强度变高,从而拉大中间某个区域范围的显示精 度。

A:原图                                           B:提高亮度

C:把亮度降低                                D:灰度化

        把亮度调高,就是图片中的所有像素值加上了一个固定值;

        把亮度调低,就是图片中的所 有像素值减去了一个固定值;

        增大像素对比度(白的地方更白,黑的地方更黑)

        减小像素对比度 (整幅图都趋于一个颜色)

导入模块 

import cv2
import numpy as np

 输入图像

img=cv2.imread('lena.png')

调整亮度

img_add=np.uint8(np.clip(img*1.0+100,0,255))

输出图像

cv2.imshow('img',img)
cv2.imshow('img_add',img_add)
cv2.waitKey(0)

完整代码

import cv2  
import numpy as np  

# 读取输入图像  
img = cv2.imread('lena.png')  # 从文件中加载图像  

# 对图像进行亮度增加操作  
# 1. 将图像数据转换为浮点型,以避免溢出;  
# 2. 将每个像素值加上 100;  
# 3. 使用 np.clip 限制像素值在 0 到 255 之间,防止超出范围;  
# 4. 最后将结果转换回无符号 8 位整型(uint8),用于图像显示。  
img_add = np.uint8(np.clip(img * 1.0 + 100, 0, 255))  

# 显示原始图像  
cv2.imshow('img', img)  # 在窗口中显示原图像  

# 显示处理后的图像  
cv2.imshow('img_add', img_add)  # 在窗口中显示亮度增加后的图像  

# 等待用户按键,任何键按下后关闭窗口  
cv2.waitKey(0)  
cv2.destroyAllWindows()  # 关闭所有 OpenCV 创建的窗口  

 二、库函数

2.1、clip()

限制数组中的值。 给定一个区间,超出该区间的值将被限制到区间的边界。例如,如果指定的区间为``[0, 1]``, 则小于0的值将变为0,而大于1的值将变为1。 等效于但比``np.minimum(a_max, np.maximum(a, a_min))``更快。 不会检查``a_min < a_max``的条件。

numpy.clip(a, a_min=<no value>, a_max=<no value>, out=None, *, min=<no value>, max=<no value>, **kwargs)
方法描述
a包含要限制的元素的数组。
a_min, a_max最小值和最大值。如果为``None``,则不对相应边界进行限制。如果``a_min``和``a_max``都为``None``, 则返回数组的元素保持不变。这两个参数会与``a``进行广播。
out结果将放置在此数组中。它可以是输入数组,以进行原地限制。`out`必须具有正确的形状以容纳输出。 其类型保持不变。
min, max兼容数组 API 的替代参数,用于``a_min``和``a_max``。可以同时传递``a_min``和``a_max``或``min``和``max``。 默认值:``None``。
**kwargs有关其他仅限关键字的参数

相关文章:

  • 页面只有一个搜索框 如何按下enter键阻止页面的提交表单默认行为
  • vue3 如何清空 let arr = reactive([])
  • css 控制彩带图片从左到右逐渐显示有画出来的感觉
  • linux如何释放内存缓存
  • (windows)conda虚拟环境下open-webui安装与启动
  • 为什么后端接口返回数字类型1.00前端会取到1?
  • 【颠覆性缓存架构】Caffeine双引擎缓存实战:CPU和内存双优化,命中率提升到92%,内存减少75%
  • AI大白话(五):计算机视觉——AI是如何“看“世界的?
  • kotlin init执行顺序
  • 制作PaddleOCR/PaddleHub的Docker镜像
  • 解决 IntelliJ IDEA 方法断点导致程序无法运行的问题
  • 气象可视化卫星云图的方式:方法与架构详解
  • Python----计算机视觉处理(Opencv:霍夫变换)
  • Mysql中各种连接的区别
  • 父子组件传递数据和状态管理数据
  • PaddleHub-GPU镜像制作
  • 2025.03.23【前沿工具】| CellPhoneDB:基因网络分析与可视化的利器
  • 面试题分享-多线程顺序打印奇偶数
  • SpringBoot2集成Elasticsearch8(使用spring-boot-starter-data-elasticsearch)
  • Oracle 外键/引用完整性(Foreign Key / Referential Integrity Constraints)
  • 国际著名学者Charles M. Lieber全职受聘清华深圳国际研究生院
  • 2025年第一批“闯中人”已经准备好了
  • 停电催生商机,中国品牌 “照亮” 西班牙
  • 剑指3000亿产业规模,机器人“武林大会”背后的无锡“野望”
  • 深交所修订创业板指数编制方案,引入ESG负面剔除机制
  • 湖北鄂城:相继4所小学有学生腹泻呕吐,供餐企业负责人已被采取强制措施