您现在的位置:首页 >> 智能优化 >> 内容

m基于遗传优化的阈值分割算法的雾天图像去雾增强matlab仿真

时间:2023/2/26 22:45:32 点击:

  核心提示:09_026_m,包括程序操作录像+说明文档+参考文献...

1.完整项目描述和程序获取

>面包多安全交易平台:https://mbd.pub/o/bread/ZJWalZ5v

>如果链接失效,可以直接打开本站店铺搜索相关店铺:

点击店铺

>如果链接失效,程序调试报错或者项目合作可以加微信或者QQ联系。

2.部分仿真图预览





3.算法概述

        将遗传算法应用于雾天图像的区域分割,从而使图像清化.该方法首先用遗传算法求出近景和远景的分割阈值将图像分割出来,然后通过移动模板对整个图像进行相应的清晰化处理,防止区域边界效应的产生,最后对获取的图像进行信息融合,进一步提高图像质量,有效改善雾天图像的退化现象,提高图像的清晰度.

4.部分源码

..........................................................

 

%最佳阈值

Level = floor(yuzhi(1,maxgen));

 

[m,n]=size(C);

for i=1:m

    for j=1:n

        if C(i,j) <= Level

            C(i,j)=0;

        else

            C(i,j)=255;

        end

    end

end

subplot(122);

imshow(C);

title('根据遗传算法得到的阈值分割后的雾图'); 

 

 

figure;

plot(yuzhi,'-bs',...

    'LineWidth',1,...

    'MarkerSize',6,...

    'MarkerEdgeColor','k',...

    'MarkerFaceColor',[0.9,0.0,0.0]);

xlabel('迭代次数');

ylabel('优化阈值');

 

 

 

%%

 

%%

%然后通过移动模板对整个图像进行相应的清晰化处理,防止区域边界效应的产生,

%然后通过移动模板对整个图像进行相应的清晰化处理,防止区域边界效应的产生,

%然后通过移动模板对整个图像进行相应的清晰化处理,防止区域边界效应的产生,

%分别报出分割后的两个部分的图像

Near = zeros(m,n);

Far  = zeros(m,n);

for i=1:m

    for j=1:n

        if C(i,j) == 0%近图

           Near(i,j) = B(i,j);

        end

        if C(i,j) == 255%远图

           Far(i,j) = B(i,j);

        end        

    end

end

 

Near2 = zeros(m,n);

Far2  = zeros(m,n);

FF    = zeros(m,n);

 

 

FF2   = zeros(m,n);

%假设移动模块的大小为4*4

WIN = 4;

a1  = 0.4;%处理前后两个图片的所占权重

a2  = 0.7;%处理前后两个图片的所占权重

 

Bmax = max(max(B));

r    = Level/double(Bmax);

 

............................................................................

 

 

figure;

subplot(121);

imshow(Near2,[]);title('近图')

subplot(122);

imshow(Far2,[]);title('远图')

 

 

 

figure;

subplot(121);

imshow(B);title('原雾图')

subplot(122);

imshow(uint8(FF));title('处理后的雾图')

%%

%%

%最后对数据进行融合

%最后对数据进行融合

%最后对数据进行融合

for i=1:m

    for j=1:n

        if C(i,j) == 0%近图

           FF2(i,j) = a1*FF(i,j)+(1-a1)*B(i,j);

        end

        if C(i,j) == 255%远图

           FF2(i,j) = a2*FF(i,j)+(1-a2)*B(i,j);

        end        

    end

end

 

figure;

subplot(121);

imshow(B);title('原雾图')

subplot(122);

imshow(uint8(FF2));title('处理后的雾图')

%%

09_026_m

作者:我爱C编程 来源:我爱C编程
本站最新成功开发工程项目案例
相关文章
相关评论
发表我的评论
  • 大名:
  • 内容:
本类固顶
  • 没有
  • FPGA/MATLAB商业/科研类项目合作(www.store718.com) © 2025 版权所有 All Rights Reserved.
  • Email:1480526168@qq.com 站长QQ: 1480526168