人眼视觉特性之亮度掩蔽特性

视觉系统在人类探求、认知客观外在世界及主观内在心理的过程中扮演重要角色。视觉系统是人类获取外界信息的主要途径,统计科学研究表明超过70%的外界信息通过人眼所获得。同时视觉神经系统能快速、有效地解读及分析所采集的信息,从而使人类认知外界事物。因此研究和分析人类视觉系统的组成及其所具有的视觉特性具有重要的理论及实际意义。随着科技的飞速发展,近年来人眼视觉特性的相关研究也在图像处理领域引起了高度的重视。本文主要对人眼视觉特性的亮度掩盖特性进行相关研究,其理论介绍可以参考网上资源,下文主要对其进行编码实现。

亮度探测阈值(即最小可觉差)是指人眼恰可察觉的目标亮度与背景亮度之间的最小亮度差异。心理物理学中,将最小可觉差随背景亮度变化而变化的现象称为人眼的亮度掩蔽特性。Buchsbaum曲线反映了亮度探测阈值ΔBT与背景亮度B之间的关系,并将人眼视觉划分为如图1所示的4个区域:暗区域,德弗里斯区域,韦伯区域,饱和区域。详细内容请参考文献[2]。

图1 人眼视觉的4个区域

对于大范围的背景亮度变化,人眼视觉系统主要作用在韦伯区域。

本人对文献[1,2]中的亮度掩蔽特性内容进行相关研究,并对其进行编码实验,下列代码为亮度掩蔽特性在图像处理领域中的一个应用示例(MATLAB代码):

main函数:


clear;

addpath(genpath(pwd));

%% input the picture

[FileName, FilePath]=uigetfile('*.jpg;*.png;*.tif;*.img;*.bmp;*.gif;','请选择图像数据');

str=[FilePath FileName];

img_rgb=imread(str);

%%

[m n z]=size(img_rgb);

if(z>1)

    img_gray=rgb2gray(img_rgb);

end

%% Background brightness

[W,H]=size(img_gray);

X_img=zeros(W+2,H+2);

X_img(2:W+1,2:H+1)=img_gray;

for i=2:W+1

    for j=2:H+1

    B_right_direction=1/4*(X_img(i-1,j)+X_img(i+1,j)+X_img(i,j-1)+X_img(i,j+1));%directly left, right, up and down of the pixel

    B_diagonal_line=1/(4*sqrt(2))*(X_img(i-1,j-1)+X_img(i+1,j-1)+X_img(i-1,j+1)+X_img(i+1,j+1));%the pixels diagonally one pixel away

    B(i,j)=1/2*(1/2*(B_right_direction+B_diagonal_line)+X_img(i,j)); % B is the value of brightness

    end

end

B_brightness= B(2:W+1,2:H+1);

figure

imshow(uint8(B_brightness));

title('背景亮度图');

%% calculate the max pixel value and the min pixel value in a image

min_value=min(min(img_gray));

max_value=max(max(img_gray));

B_t=max_value-min_value;

%% canny edge detect

BW1 = edge(X_img,'canny');  % 调用canny函数

[out_row_gray,out_colum_gray,out_final_gray]=Gradient_calculation(img_gray);

Gradient_value=out_final_gray;

figure

imshow(uint8(Gradient_value));

title('梯度图');

%% set parameters

a1=0;

a2=0.3;

a3=0.7;

beta=0.02;

B_x1=a1*B_t;

B_x2=a2*B_t;

B_x3=a3*B_t;

%%

K1=beta/100*max(max(Gradient_value./B_brightness));

K2=K1*sqrt(double(B_x2));

K3=K1/B_x3;

%%

% temp_brightness1=B_brightness;

% temp_brightness1(find(temp_brightness1>=B_x1))=0;

% figure

% imshow(img_rgb);

% hold on;

% out=shadow(temp_brightness1,1);

% title('非暗区域');

%%

temp_brightness2=B_brightness;

temp_brightness2(find(temp_brightness2>=B_x1&temp_brightness2<=B_x2))=0;

figure

imshow(img_rgb);

hold on;

out=shadow(temp_brightness2,1);

title('德弗里斯区');

set(gcf,'color','w');

%%

temp_brightness3=B_brightness;

temp_brightness3(find(temp_brightness3>=B_x3))=0;

figure

imshow(img_rgb);

hold on;

out=shadow(temp_brightness3,1);

title('饱和区');

set(gcf,'color','w');

%%

temp_brightness4=B_brightness;

temp_brightness4(find(temp_brightness4>=B_x2&temp_brightness4<=B_x3))=0;

figure

imshow(img_rgb);

hold on;

out=shadow(temp_brightness4,1);

title('韦伯区');

set(gcf,'color','w');


Gradient_calculation function 


function [out_row,out_colum,out_final]=Gradient_calculation(input)

[w,h]=size(input);

gradient_row=zeros(w,h);

gradient_column=zeros(w,h);

gradient_final=zeros(w,h);

for i=1:w-1

    for j=1:h-1

        gradient_row(i,j)=input(i,j+1)-input(i,j);

        gradient_column(i,j)=input(i+1,j)-input(i,j);

        if(abs(gradient_row(i,j))>= abs(gradient_column(i,j)))

            gradient_final(i,j)=abs(gradient_row(i,j));

        else

            gradient_final(i,j)=abs(gradient_column(i,j));

        end

    end

end

out_row=gradient_row;

out_colum=gradient_column;

out_final=gradient_final;


shadow function (该函数只是为了标记出相应的区域,运行起来比较费时,各位同行如有新的解决方法,欢迎分享)


function out=shadow(input,value)

hold on;

a=input<value;

% structure image

%%

[m n]=find(a);

for ii=1:length(m)

x=n(ii)+[0 0 1 1];

y=m(ii)+[0 1 1 0];

    patch(x,y,'b','edgecolor','none','facealpha',0.4);

end

hold off;

out=1;


实验结果图如下所示:

图2 亮度掩蔽特性实验结果图

参考文献

[1] Mandal D, Panetta K, Agaian S. Human visual system inspired object detection and recognition[C]// IEEE International Conference on Technologies for Practical Robot Applications. IEEE, 2012:145-150.

[2] 张菲菲,谢伟, 石强,等. 人眼视觉感知驱动的梯度域低照度图像对比度增强[J]. 计算机辅助设计与图形学学报, 2014(11):001981-1988.


上述内容仅个人的点滴粗见,如有不当之处,请同行批评指正。

©著作权归作者所有,转载或内容合作请联系作者
  • 序言:七十年代末,一起剥皮案震惊了整个滨河市,随后出现的几起案子,更是在滨河造成了极大的恐慌,老刑警刘岩,带你破解...
    沈念sama阅读 204,445评论 6 478
  • 序言:滨河连续发生了三起死亡事件,死亡现场离奇诡异,居然都是意外死亡,警方通过查阅死者的电脑和手机,发现死者居然都...
    沈念sama阅读 85,889评论 2 381
  • 文/潘晓璐 我一进店门,熙熙楼的掌柜王于贵愁眉苦脸地迎上来,“玉大人,你说我怎么就摊上这事。” “怎么了?”我有些...
    开封第一讲书人阅读 151,047评论 0 337
  • 文/不坏的土叔 我叫张陵,是天一观的道长。 经常有香客问我,道长,这世上最难降的妖魔是什么? 我笑而不...
    开封第一讲书人阅读 54,760评论 1 276
  • 正文 为了忘掉前任,我火速办了婚礼,结果婚礼上,老公的妹妹穿的比我还像新娘。我一直安慰自己,他们只是感情好,可当我...
    茶点故事阅读 63,745评论 5 367
  • 文/花漫 我一把揭开白布。 她就那样静静地躺着,像睡着了一般。 火红的嫁衣衬着肌肤如雪。 梳的纹丝不乱的头发上,一...
    开封第一讲书人阅读 48,638评论 1 281
  • 那天,我揣着相机与录音,去河边找鬼。 笑死,一个胖子当着我的面吹牛,可吹牛的内容都是我干的。 我是一名探鬼主播,决...
    沈念sama阅读 38,011评论 3 398
  • 文/苍兰香墨 我猛地睁开眼,长吁一口气:“原来是场噩梦啊……” “哼!你这毒妇竟也来了?” 一声冷哼从身侧响起,我...
    开封第一讲书人阅读 36,669评论 0 258
  • 序言:老挝万荣一对情侣失踪,失踪者是张志新(化名)和其女友刘颖,没想到半个月后,有当地人在树林里发现了一具尸体,经...
    沈念sama阅读 40,923评论 1 299
  • 正文 独居荒郊野岭守林人离奇死亡,尸身上长有42处带血的脓包…… 初始之章·张勋 以下内容为张勋视角 年9月15日...
    茶点故事阅读 35,655评论 2 321
  • 正文 我和宋清朗相恋三年,在试婚纱的时候发现自己被绿了。 大学时的朋友给我发了我未婚夫和他白月光在一起吃饭的照片。...
    茶点故事阅读 37,740评论 1 330
  • 序言:一个原本活蹦乱跳的男人离奇死亡,死状恐怖,灵堂内的尸体忽然破棺而出,到底是诈尸还是另有隐情,我是刑警宁泽,带...
    沈念sama阅读 33,406评论 4 320
  • 正文 年R本政府宣布,位于F岛的核电站,受9级特大地震影响,放射性物质发生泄漏。R本人自食恶果不足惜,却给世界环境...
    茶点故事阅读 38,995评论 3 307
  • 文/蒙蒙 一、第九天 我趴在偏房一处隐蔽的房顶上张望。 院中可真热闹,春花似锦、人声如沸。这庄子的主人今日做“春日...
    开封第一讲书人阅读 29,961评论 0 19
  • 文/苍兰香墨 我抬头看了看天上的太阳。三九已至,却和暖如春,着一层夹袄步出监牢的瞬间,已是汗流浃背。 一阵脚步声响...
    开封第一讲书人阅读 31,197评论 1 260
  • 我被黑心中介骗来泰国打工, 没想到刚下飞机就差点儿被人妖公主榨干…… 1. 我叫王不留,地道东北人。 一个月前我还...
    沈念sama阅读 45,023评论 2 350
  • 正文 我出身青楼,却偏偏与公主长得像,于是被迫代替她去往敌国和亲。 传闻我的和亲对象是个残疾皇子,可洞房花烛夜当晚...
    茶点故事阅读 42,483评论 2 342

推荐阅读更多精彩内容