matlab for循环优化问题

问题描述:

matlab for循环优化问题
大体意思是把图像的每个点拿出来做积分上限.
pout=double(imread('pout.tif'));
[row colume]=size(pout);%图像的尺寸
num_pixel=row*colume;
Pmax=max(max(pout));
Pmin=min(min(pout));
figure(1);
hist(pout);
alpha=7;%定义alpha参数
beta=9;%定义beta参数
g_pout=(pout-Pmin)./(Pmax-Pmin);%归一化处理
gc_pout=zeros(row,colume);%预先定义一个矩阵
%syms t;
f=@(t)t.^(alpha-1).*(1-t).^(beta-1);%]f=@(t)t.^(alpha-1).*(1-t).^(beta-1);%定义句柄函数,用的是归一化的非完全beta函数对图像进行自适应增强
g=quadl(f,0,1);%分母
for i=1:row%行长
for j=1:colume;%列长
gc_pout(i,j)=double(quadl(f,0,g_pout(i,j))/g);%对每个像素点进行优化,就是矩阵里的每个元素作为积分的上限
end
end
pout=gc_pout.*(Pmax-Pmin)+Pmin;%得到输出图像
figure(2);
hist(pout);
imwrite(uint8(pout),'pout_oo.tif');
1个回答 分类:综合 2014-12-14

问题解答:

我来补答
这个有什么问题?结果都可以跑出来了哦~~~~~
再问: 太慢了。我做的是一个遗传算法的程序,这段程序alpha和beta是直接给出了的,但实际上是需要我用遗传算法来得到最好的alpha和beta的值,就是说需要运行很多次类似的for循环,如果有必要我可以把整段程序发给你看看,指教一下我。QQ邮箱1638659573
再答: pout=double(imread('pout.tif')); [row colume]=size(pout);%图像的尺寸 num_pixel=row*colume; Pmax=max(max(pout)); Pmin=min(min(pout)); figure(1); hist(pout); alpha=7;%定义alpha参数 beta=9;%定义beta参数 g_pout=(pout-Pmin)./(Pmax-Pmin);%归一化处理 gc_pout=zeros(row,colume);%预先定义一个矩阵 syms t c; f=t.^(alpha-1).*(1-t).^(beta-1); gc=int(f,0,c); g=subs(gc,'c',1) gc_pout=subs(gc,'c',g_pout)/g; pout=gc_pout.*(Pmax-Pmin)+Pmin;%得到输出图像 figure(2); hist(pout); imwrite(uint8(pout),'pout_oo.tif');
 
 
展开全文阅读
剩余:2000