关于车牌定位的一个程序请教
该程序首先把rgb图像转化为XYZ空间,然后在XYZ空间进行一些阈值找到黄色的底色车牌,这是从国外的车牌识别程序,但不明白那些阈值为什么要那么设,用的是什么原理?还有一个疑问就是,这个程序对于输入的车牌有时候找到的是车牌的底,有时候是车牌的数字。一个是黄色,一个是白色。真不知道怎么找的。
function [y_image] = extract_yellow_region(image);
% extract_yellow_region: Determines the yellow regions in the picture using
% the CIE-XYZ color system, and returns a black and white picture which is
% set on the yellow regions only.
% Define the lines in CIE-XYZ space, use to determine yellow color
lower_A = 0.87; lower_B = 0.04;
upper_A = 1.5 ; upper_B = -0.125;
% Convert 8-bit format of org_pic pixels to double format
pic = double(image)+1;
pic = pic.*1.6;
% Conversion from RGB709 to CIE-XYZ
x = ( pic(:,:,1).*0.412453 + pic(:,:,2).*0.35758 + pic(:,:,3).* 0.180423);
y = ( pic(:,:,1).*0.212671 + pic(:,:,2).*0.715160 + pic(:,:,3).* 0.072169);
z = ( pic(:,:,1).*0.019334 + pic(:,:,2).*0.119193 + pic(:,:,3).*0.950227);
sum = x + y + z;
x_bar = x./sum;
y_bar = y./sum;
% Define yellow color in CIE-XYZ space
x_sum_conds = ( ((x_bar > 0.34) & (sum > 400) & (sum < 500) ) | ((x_bar > 0.37) & (sum > 200) & (sum < 500)) );
xy_conds = ( (y_bar > 0.35) & (y_bar < 0.5) & (y_bar > (lower_A*x_bar + lower_B)) & (y_bar < (upper_A*x_bar + upper_B)) );
y_image = (x_sum_conds & xy_conds);
return;