1 内容介绍
计算机视觉检测技术是检测技术中一个新兴的应用方向和备受关注的前沿课题,是计算机技术、模式识别、检测技术、数字图像处理、人工智能等多门学科的结晶。如今,计算机视觉检测技术正在向更智能化的方向发展,即不需要人为干预,即可利用图像处理、模式识别等方法,获取一定区域内的信息并自动分析,实现对场景内目标的识别、定位甚至跟踪,得出对图像内容含义以及客观场景的理解,最终给出检测结果。
2 部分代码
function im=LightCompensate(I)
[m0,n0,l]=size(I);
%figure,imshow(I)
thresholdco=0.05; %比例系数
thresholdnum=100; %像素个数的临界常数
histogram=zeros(1,256); %灰度级 数组
if m0*n0*thresholdco<thresholdnum
disp('输入图像太小,请换一张!');
return
end
gray=0;
index0=0;
for i=1:m0 %scan image
for j=1:n0
gray=round(I(i,j,1)*.299+I(i,j,2)*.587+I(i,j,3)*.114);
index0=gray+1;
histogram(1,index0)= histogram(1,index0)+1;
end
end
calnum=0;
total=m0*n0;
num=0;
%next获得满足系数thresholdco的临界灰度级
index1=0;
for i=1:256
if calnum/total<thresholdco
index1=256-i+1;
calnum=calnum+histogram(1,index1);
num=i;
else
break;
end
end
averagegray=0;
calnum=0;
k=256-num+1;
% 获得满足条件的像素总的灰度值
for i=256:-1:k
averagegray=averagegray+histogram(1,i)*i;
calnum=calnum+histogram(1,i);
end
averagegray=averagegray/calnum;
co=255.0/averagegray;
%进行光线补偿
for i=1:m0
for j=1:n0
I(i,j,1)=I(i,j,1)*co;
if I(i,j,1)>255
I(i,j,1)=255;
end
I(i,j,2)=I(i,j,2)*co;
if I(i,j,2)>255
I(i,j,2)=255;
end
I(i,j,3)=I(i,j,3)*co;
if I(i,j,3)>255
I(i,j,3)=255;
end
end
end
im=zeros(m0,n0,l);
im=I; %
3 运行结果
4 参考文献
[1]张宇洋. 基于计算机视觉检测技术的候梯人数检测系统[D]. 上海交通大学.