查看图片某点亮度

一背景

光强度的评价通常涉及对光源发出的光的量进行测量和描述。这种评价可以通过多种方式进行,但最常见的是使用光强单位“坎德拉”(candela,cd)来表示。坎德拉是国际单位制(SI)中光强度的单位,它描述了一个特定方向上光源的强度。

光强度的范围可以从非常微弱的光源(如某些类型的生物发光)到非常强烈的光源(如高强度灯或激光)。在日常生活中,我们会遇到各种各样的光强度水平,从星光(大约为1坎德拉每平方米)到室内照明(几百到几千坎德拉每平方米)再到直射阳光(大约为100,000坎德拉每平方米)。

然而,人类视觉系统对光强度的感知并不是线性的,而是对数的。这意味着,尽管两个光源的光强度可能相差很大,但人眼感知到的亮度可能只相差一点点。这就是为什么我们需要使用主观亮度这个概念,它反映了人眼感知到的光强度,而不是实际的物理强度。

主观亮度是人眼对光强度的感知,它与实际的光强度(坎德拉)之间存在对数关系。这种关系意味着,即使光强度增加了很多倍,人眼感知到的亮度可能只会略微增加。这种现象是由于人眼的亮度适应机制,它允许我们在不同光照条件下保持视觉的稳定性和舒适性。亮度适应使我们能够在从昏暗的房间走到明亮的户外环境中时,视觉系统能够调整并适应新的光照水平。

为此编写程序查看图像任意一点亮度变化。

二代码

修改图片路径,运行后,鼠标点击图像上任意位置,显示图像亮度。亮度测量一般转换为灰度图进行测量。

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

# 加载图片
image = cv2.imread('1.png')

# 转换图像为灰度图
image_gray = cv2.cvtColor(image, cv2.COLOR_BGR2GRAY)

# 转换图像数据为浮点数类型
image_gray = np.float32(image_gray)

def onclick(event):
    # 获取鼠标点击的坐标
    x = int(event.xdata)
    y = int(event.ydata)
    
    # 计算亮度
    brightness = image_gray[y, x]
    
    print(f'亮度: {brightness}')

# 创建一个新的图像窗口
fig, ax = plt.subplots()

# 显示图像
ax.imshow(image_gray, cmap='gray')

# 连接鼠标点击事件到我们的处理函数
cid = fig.canvas.mpl_connect('button_press_event', onclick)

# 显示窗口
plt.show()

  • 5
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

打赏作者

Alocus_

如果我的内容帮助到你,打赏我吧

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

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

打赏作者

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

抵扣说明:

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

余额充值