%manuahist源程序
function p=manuahist
%manuahist产生一个双峰值直方图
%p=manuahist使用twomodeguass(m1,sig1,m2,sig2,A1,A2,k)产生一个双峰值直方图。
%m1和m2是两个模型的平均值和范围必须是[0,1]。
%sig1和sig2是两个模型的标准化偏离
%A1和A2是振幅,k是直方图'floor'的补偿值。
%向量p的直方图个数是256,sum(p)是标准化趋于1。
%manuahist是提示参数和表格得出直方图,直到使用x去停止,返回计算最后的直方图
%一个好的值m1=0.15,sig1=0.05,m2=0.75,sig2=0.05,A1=0.07和k=0.002
%初始化
repeats=true;
quitnow='x';
%计算一个默认直方图以防还没计算到最后一个直方图使用者去停止
p=twomodegauss(0.15,0.05,0.75,0.05,1,0.07,0.002);
while repeats
s=input('Enter m1,sig1,m2,sig2,A1,A2,k OR x to quit:''s');
if s==quitnow
break
end
%转换输出为一个向量的数值和验证输入的数值
v=str2num ~=7
disp('Incorrect number of inputs.')
continue
end
p=twomodeguass(v(1),v(2),v(3),v(4),v(5),v(6),v(7));
%开始一个新的图像和坐标大小。仅在自动上指定x轴离开y轴
figure,plot(p)
xlim([0 255])
end
08-07
08-07
08-07
08-07
08-07
08-07
08-07