“第二章数字图像底子,超等难啃。”—不是我说的,是我朋侪说的。
“2.1.1讲人眼结构,这东西对盘算机视觉有啥用吗?我又不是学医!”—这依然不是我问的,是我朋侪问的。
我的发起是,多啃几遍了哦,不如就像我,做多次条记试试。尚有啊,人眼结构这块要注意,反面遇到液态仿生镜头你就知道了。
一、人眼结构与成像原理
眼球分层与焦点组件
1.1 眼球本体结构
外层: 角膜(透明,负责折射光线)和巩膜(掩护结构) 。
中层: 虹膜(调治瞳孔巨细控制进光量)、睫状体(调治晶状体曲率)和脉络膜(汲取散射光) 。
内层(视网膜):
锥状细胞:约600-700万个,位于中心凹,负责高分辨率、彩色视觉(明视觉) 。
杆状细胞:约7500-15000万个,分布广但毗连共享神经,对低照度敏感(暗视觉) 。
盲点:无视细胞地区,由视神经出口形成 。
眼球内容物:
房水:添补前房和后房,维持眼压并营养角膜、晶状体 。
晶状体:弹性透明结构,通过改变曲率调治焦距(类似相机镜头) 。
玻璃体:凝胶状物质,支持眼球形状并转达光线至视网膜 。
1.2 附属器官
掩护与润滑结构
眼睑与睫毛:物理屏蔽,防止异物侵入;眨眼动作保持角膜湿润 。
结膜:覆盖眼睑内侧和巩膜外貌,分泌黏液辅助润滑 。
泪器:泪腺分泌泪液干净眼球,泪道倾轧多余液体 。
运动调治结构
外眼肌:6条肌肉协同控制眼球运动,实现快速扫视、追踪目的等功能 。
1.3 关键动态特性
瞳孔调治:虹膜通过肌肉紧缩改变瞳孔巨细,顺应差别光照强度(动态对比度可达百万比一) 。
视网膜顺应:从明到暗环境需约30分钟完成化学调解(如视紫红质再生),以规复暗视觉 。
1.4 功能协同示例
当光线通过角膜→房水→瞳孔→晶状体→玻璃体到达视网膜后,感光细胞将光信号转化为电信号,经双极细胞→神经节细胞→视神经转达至大脑皮层,终极形成视觉 。若晶状体弹性降落(如老花眼),睫状体无法有效调治焦距,需借助光学镜片改正 。
成像机制
晶状体通过改变形状调治焦距(14-17mm),类似相机镜头 。
视网膜中心凹类似CCD传感器,聚焦后光信号转换为电脉冲,由大脑解码 。
二、亮度顺应与视觉征象
亮度顺应(Brightness Adaptation)
动态范围: 人眼可顺应光强范围达 101010^{10}1010
,但瞬时辨别的亮度级仅约 10310^{3}103 。
顺应级别: 当前环境下的灵敏度程度,暗视觉(杆状体主导)与明视觉(锥状体主导)的切换须要时间(如暗顺应约30分钟) 。
关键视觉征象
马赫带效应(Mach Bands)
征象:在匀称亮度地区边界处感知到卖弄的亮/暗带(图1)。
原理:视觉体系增强对比度以突出表面 。
代码示例:天生灰度渐变条带并观察边界效应。- import numpy as np
- import matplotlib.pyplot as plt
- # 生成带有阶梯突变的渐变(模拟侧抑制)
- steps = 10 # 阶梯数
- step_width = 25 # 每个阶梯宽度(像素)
- gradient = np.zeros((200, 256))
- for i in range(steps):
- start = i * step_width
- end = start + step_width
- gradient[:, start:end] = i * (255 // steps)
- plt.figure(figsize=(15, 3))
- plt.imshow(gradient, cmap='gray', aspect='auto', interpolation='none') # 禁用插值
- plt.axis('off')
- plt.title("Illustration of the Mach band effect.")
- plt.show()
复制代码 输出效果:渐变条带在相邻地区接壤处出现亮/暗条纹。
同时对比(Simultaneous Contrast)
征象:类似灰度的小方块在差别配景中感知亮度差别。
代码示例:创建差别配景下的类似灰度方块。- import numpy as np
- import matplotlib.pyplot as plt
- # 创建黑色和白色背景 (明确使用uint8数据类型)
- bg_dark = np.zeros((200, 200), dtype=np.uint8) # 黑色背景 (0)
- bg_light = np.ones((200, 200), dtype=np.uint8) * 255 # 白色背景 (255)
- # 在中心添加相同灰度方块(灰度值=127)
- patch_value = 127
- patch = np.ones((50, 50), dtype=np.uint8) * patch_value
- bg_dark[75:125, 75:125] = patch
- bg_light[75:125, 75:125] = patch
- # 可视化对比(强制显示范围为0-255)
- plt.figure(figsize=(10, 5))
- plt.subplot(1, 2, 1)
- plt.imshow(bg_dark, cmap='gray', vmin=0, vmax=255, interpolation='none') # 关键修复点
- plt.title("Dark Background: Patch Looks Brighter")
- plt.axis('off')
- plt.subplot(1, 2, 2)
- plt.imshow(bg_light, cmap='gray', vmin=0, vmax=255, interpolation='none') # 关键修复点
- plt.title("Light Background: Patch Looks Darker")
- plt.axis('off')
- plt.tight_layout()
- plt.show()
复制代码 输出效果:中心方块在深配景中显得更亮,在浅配景中显得更暗。
三、视觉错觉与图像处置惩罚启示
错觉范例
多少错觉:平行线因交织线干扰显得不平行 。
亮度错觉:不存在的中心形状因配景模式被感知 。
对图像处置惩罚的启发
增强算法筹划:利用马赫带效应优化边沿检测,制止太过锐化导致的卖弄表面 。
表现技能优化:思量同时对比征象,调解UI界面临比度以提拔用户体验 。
四、总结与实践发起
理论焦点:人眼通太过层结构和动态顺应机制实现高效视觉感知,但其非线性特性(如亮度对数相应)需在图像处置惩罚中被建模 。
参考文献
《数字图像处置惩罚》中文译本第二章 §2.1
人眼亮度顺应与错觉机制详解
视觉征象模拟代码实现
免责声明:如果侵犯了您的权益,请联系站长,我们会及时删除侵权内容,谢谢合作!更多信息从访问主页:qidao123.com:ToB企服之家,中国第一个企服评测及商务社交产业平台。
|