人类视觉系统(Human Visual System,HVS)

人类通过人类视觉系统(HVS)来获取外界图像信息,当光辐射刺激人眼时,将会引起复杂的生理和心理变化,这种感觉就是视觉。

      人类视觉系统(HVS)作为一种图像处理系统,它对图像的认知是非均匀和非线性的。人眼对于图像的视觉特性主要包括:对亮度信号比对色度信号敏感;对低频信号比对高频信号敏感;对静止图像比对运动图像敏感;对图像水平线条和垂直线条比对斜线条敏感等。

      人类视觉系统(HVS)的研究包括光学、色度学、视觉生理学、视觉心理学、解剖学、神经科学和认知科学等许多科学领域。人眼类似于一个光学信息处理系统,但它不是一个普通的光学信息处理系统,从物理结构看,人类视觉系统(HVS)由光学系统、视网膜和视觉通路组成,其视觉信息处理模型如图18所示。

图18  人类视觉系统(HVS)视觉信息处理模型

      由于电影或电视图像最终是给人观看的,而人眼对于原始图像各处失真的敏感程度不同,人的视觉在某些条件下往往可以容忍一些失真,而且有些失真人眼又根本辨别不出来。因此,对于人眼不敏感、无关紧要的信息允许有较大的失真,即使这些信息全部丢失,人眼也可能觉察不到;相反,对于人眼比较敏感的信息,则尽可能要减少其失真。

      人们通常将包含在色度信号、图像高频信号和运动图像中的一些数据视为冗余信息,并称之为视觉冗余度,可以利用人类视觉系统(HVS)特性来进行视觉冗余度的压缩,即去除那些相对于人眼而言属于看不到或可有可无的图像数据。对于数字电影(Digital Cinema),正是利用人类视觉特性(HVS),采用感知编码(Perceptual Coding)技术来实现视觉无损(Visually Lossless)的图像压缩。

 

对颜色/亮度的感知  人类对光的感知是依靠视网膜(retina)细胞。cones(圆锥细胞)负责感知光度(较强光)和色彩, rods(杆状细胞)仅能感知光度,不能感知颜色,但其对光的敏感度是cones的一万倍。在微软光环境下rods起主要作用,因此我们不能在暗环境中分辨颜色。一些数码相机的夜光拍摄模式也模拟了这一特性。

  视网膜中三种圆锥细胞(cones) 有重叠的频率响应曲线,但响应强度有所不同,他们 分别对红(570nm), 绿(535nm), 蓝(445nm)光有最敏感,共同决定了色彩感觉。光度(luminance) 正比于视网膜细胞接受到的光强度能量,但人类对相同强度不同波长的光具有不同的敏感度。可感知的波长范围380nm~780nm,称为可见光。其中对绿色(550nm)光产生最大的光强敏感度。

 

视力

  眼睛的空间分辨能力,即视力,通常用可分辨视角(degree)的倒数为单位。正常人的最少可辨视觉阀值约0.5”,最大视觉范围200度(宽)×135度(高)。

空间频率

  即影像在空间中的变化速度。用亮度呈空间正弦变化的条纹做测试,亮度Y(x,y) = B(1+mcos2πfx), 给定条纹频率f为一固定值(看作是宽度),改变振幅m(看作对比度),测试分辨能力。显然m越大分辨越清楚,测试不同条件下(不同cpd)可分辨的最少m值,定义1/mmin为对比敏感度(contrast sensitivity)。定义人眼的对空间感觉的角度频率:cpd: cycle / degree ,表示眼球每转动一度扫过的黑白条纹周期数。对给定的条纹,这个值与人眼到显示屏的距离有关,对于同样大小的屏幕,离开越远,cpd越大。

  通常人眼对空间的感觉相当于一个带通滤波器。最敏感在2~5个cpd ,空间截止频率为30cpd。比如我们看油画和电视机屏幕时,当距离离开一定远,cpd增大,人的眼睛就分辨不了象素点细节,便感觉不到颗粒感了。

  当人观察一个静止影像时,眼球不会静止一处(精神病人除外), 通常停留在一处几百毫秒完成取像后,移到别处取像,如此持续不断。 这种运动称为跳跃性运动(saccadic eye movement)。研究表明跳跃性运动可以增大对比敏感度,但敏感度峰值却减少。

对时间频率的感知

  时间频率即画面随时间变化的快慢。Kelly.D.H用亮度按时间正弦变化的条纹做实验,亮度Yt) = B(1+mcos2πft)。改变m, 测试不同时间频率f下的对比敏感度。

  实验表明时间频率响应还和平均亮度有关。在一般室内光强下,人眼对时间频率的响应近似一个带通滤波器。对15~20Hz信号最敏感,有很强闪烁感(flick),大于75Hz响应为0,闪烁感消失。刚到达闪烁感消失的频率叫做临界融合频率(CFF)。在较暗的环境下,呈低通特性,且CFF会降低,这时对5Hz信号最敏感,大于25Hz闪烁基本消失。电影院环境很暗,放映机的刷新率为24Hz也不感到闪烁, 这样可以减少胶卷用量和机器的转速。而电脑显示器亮度较大,需要75Hz闪烁感才消失。闪烁消失后,亮度感知等于亮度时间平均值(塔鲁伯法则)。这种低通特性,也可以解析为视觉暂留特性,即当影像消失/变化时,大脑的影像不会立刻消失,而是保留一个短暂时间。生活中常感受到的动态模糊,运动残像也和这个有关。有很多电子产品设计利用了这一现象,例如LED数码管的动态扫描,LED旋转字幕等。

对运动物体感知

  观察一个运动物体,眼球会自动跟随其运动,这种现象叫随从运动(eye pursuit movement)。这时眼球和物体的相对速度会降低,我们能更清晰地辨认物体。例如观看球类比赛(如棒球),尽管棒球的运动速度很快,由于随从运动,我们仍够看得到球的大概样子 (但会有运动模糊)。如果我们把眼睛跟着风扇转动方向转动,会发现对扇叶细节看得较清楚。眼球随从最大速度为4~5度/秒,因此我们不可能看清楚一颗子弹飞行。

  应用这些动画,电影,魔术等就成为现实.

  • 4
    点赞
  • 14
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
### 回答1: 以下是HVS三个通道合成的代码: float3 HVS(float3 rgb) { float3 hvs = float3(., ., .); hvs.r = .2989 * rgb.r + .587 * rgb.g + .114 * rgb.b; hvs.g = .5 * rgb.r - .4187 * rgb.g - .0813 * rgb.b + 128.; hvs.b = -.1687 * rgb.r - .3313 * rgb.g + .5 * rgb.b + 128.; return hvs; } ### 回答2: HVSHuman Visual System)是人类视觉系统的简称,它包括人眼、视网膜以及大脑中的视觉处理部分。HVS三个通道指的是亮度(Luminance)、色度红(Chrominance Red)和色度蓝(Chrominance Blue)三个通道。 下面是一段用Python编写的代码示例,用于将HVS三个通道合成: ```python import cv2 import numpy as np # 读取彩色图像 image = cv2.imread('input_image.jpg') # 将图像转换为YUV颜色空间 yuv_image = cv2.cvtColor(image, cv2.COLOR_BGR2YUV) # 将YUV图像分解为亮度、色度红、色度蓝三个通道 y_channel, u_channel, v_channel = cv2.split(yuv_image) # 计算亮度通道 luminance_channel = y_channel # 将色度红和色度蓝通道缩小到与亮度通道相同的大小 u_channel_resized = cv2.resize(u_channel, (luminance_channel.shape[1], luminance_channel.shape[0])) v_channel_resized = cv2.resize(v_channel, (luminance_channel.shape[1], luminance_channel.shape[0])) # 合成HVS三个通道 hvs_image = cv2.merge((luminance_channel, u_channel_resized, v_channel_resized)) # 显示合成的图像 cv2.imshow('HVS Image', hvs_image) cv2.waitKey(0) cv2.destroyAllWindows() ``` 以上代码首先使用OpenCV库读取彩色图像,并将其转换为YUV颜色空间。然后,将YUV图像分解为亮度、色度红、色度蓝三个通道。接下来,直接将亮度通道作为合成的HVS图像的亮度通道,并将色度红和色度蓝通道缩小到与亮度通道相同的大小。最后,使用OpenCV的merge函数将三个通道合成为最终的HVS图像,并显示出来。 需要注意的是,以上代码中的input_image.jpg应替换为实际的图像文件路径。此外,为了运行以上代码,还需安装OpenCV库,可以通过pip安装:pip install opencv-python。 ### 回答3: HVS(Hue-Value-Saturation)是一种常用的颜色空间,用于描述颜色的色调、明度和饱和度。要合成HVS三个通道,可以使用以下代码: ```python import cv2 import numpy as np # 读取图像 image = cv2.imread('image.jpg') # 转换颜色空间为HVS hsv_image = cv2.cvtColor(image, cv2.COLOR_BGR2HSV) # 分离通道 h_channel = hsv_image[:,:,0] v_channel = hsv_image[:,:,1] s_channel = hsv_image[:,:,2] # 合成通道 hvs_image = cv2.merge([h_channel, v_channel, s_channel]) # 显示合成结果 cv2.imshow('HVS Image', hvs_image) cv2.waitKey(0) cv2.destroyAllWindows() ``` 以上代码使用了OpenCV库中的`cvtColor`函数将原始图像转换为HVS颜色空间。然后,通过使用numpy库的数组索引,我们可以提取出H、V和S通道的像素值。最后,使用`merge`函数将这三个通道重新合成为HVS图像,并通过`imshow`函数显示合成结果。 请注意,代码中的`'image.jpg'`是需要替换为实际图像路径的部分。此外,导入了必要的库以便正确运行代码。

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值