开发者社区> Matlab科研工作室> 正文
阿里云
为了无法计算的价值
打开APP
阿里云APP内打开

【图像重建】基于遗传算法实现二值图像重建附matlab代码

简介: 【图像重建】基于遗传算法实现二值图像重建附matlab代码
+关注继续查看

 1 内容介绍

图像质量的优劣对人类视觉和各种计算机视觉系统都十分重要,因此图像复原一直是数字图像处理的重要研究内容。作为图像复原的一个分支,超分辨率图像重建问题得到人们越来越多的关注。在视频监控、卫星成像和医学诊断等应用中,由于物理条件的限制,人们获得的图像分辨率较低,无法满足实际需要。超分辨率图像重建技术就是利用这些低分辨率图像序列中各帧图像之间的冗余信息,重构出高分辨率图像。 提出了一种基于遗传算法的图象重建算法,该算法通过构造合适的基因编码方案及个体适应度评价函数,并对遗传算法进行优化,克服了Kuba算法和谷士文AI算法的缺陷,可以成功地解决由带有噪声的二维正交投影重建二维图象的问题,并简化了约束条件.实验结果表明该算法是成功有效的.

2 仿真代码

% Written by Dr. Seyedali Mirjalili

% To watch videos on this algorithm, enrol to my courses with 95% discount using the following links: 

% ************************************************************************************************************************************************* 

%  A course on "Optimization Problems and Algorithms: how to understand, formulation, and solve optimization problems": 

https://www.udemy.com/optimisation/?couponCode=MATHWORKSREF

% ************************************************************************************************************************************************* 

%  "Introduction to Genetic Algorithms: Theory and Applications" 

https://www.udemy.com/geneticalgorithm/?couponCode=MATHWORKSREF

% ************************************************************************************************************************************************* 

function [BestChrom]  = GeneticAlgorithm (M , N, MaxGen , Pc, Pm , Er , obj, visuailzation)

load IMG_REF_BINARY;

cgcurve = zeros(1 , MaxGen);

%%  Initialization

[ population ] = initialization(M, N);

for i = 1 : M

    population.Chromosomes(i).fitness = obj( population.Chromosomes(i).Gene(:), IMG_REF_BINARY);

end

g = 1;

disp(['Generation #' , num2str(g)]);

[max_val , indx] = sort([ population.Chromosomes(:).fitness ] , 'descend');

cgcurve(g) = population.Chromosomes(indx(1)).fitness;

subplot(1,2,2)

%% Main loop

for g = 2 : MaxGen

    disp(['Generation #' , num2str(g)]);

    for k = 1: 2: M

        % Selection

        [ parent1, parent2] = selection(population);

        

        % Crossover

        [child1 , child2] = crossover(parent1 , parent2, Pc, 'double');

        

        % Mutation

        [child1] = mutation(child1, Pm);

        [child2] = mutation(child2, Pm);

        

        newPopulation.Chromosomes(k).Gene = child1.Gene;

        newPopulation.Chromosomes(k+1).Gene = child2.Gene;

    end

    

    % Calcualte the fitness values

    for i = 1 : M

        newPopulation.Chromosomes(i).fitness = obj( newPopulation.Chromosomes(i).Gene(:), IMG_REF_BINARY);

    end

    

    % Elitism

    [ newPopulation ] = elitism(population, newPopulation, Er);

    

    cgcurve(g) = newPopulation.Chromosomes(1).fitness;

    

    population = newPopulation; % Replace the previous population with the newly made

    

    BestChrom.Gene    = population.Chromosomes(1).Gene;

    BestChrom.Fitness = population.Chromosomes(1).fitness;

    

    

    col_no = size(IMG_REF_BINARY,2);

    Recons_IMG = vec2mat(BestChrom.Gene , col_no);

    Recons_IMG = Recons_IMG .* 255;

    

 %   if rem(g , 100) == 0

        subplot(1,2,2)

        imshow(Recons_IMG);

        title(['Generation #' , num2str(g), ' Error = ' , num2str(-BestChrom.Fitness)])

        drawnow

 %   end

    

end

   

if visuailzation == 1

    figure

    plot( 1 : MaxGen , cgcurve);

    xlabel('Generation');

    ylabel('Fitness of the best elite')

end

end

3 运行结果

image

image.gif编辑

image

image.gif编辑

4 参考文献

[1]伍晓平, 谷士文, 费耀平,等. 基于遗传算法的图象重建算法[J]. 计算技术与自动化, 2000, 19(1):4.

博主简介:擅长智能优化算法、神经网络预测、信号处理、元胞自动机、图像处理、路径规划、无人机等多种领域的Matlab仿真,相关matlab代码问题可私信交流。

部分理论引用网络文献,若有侵权联系博主删除。

版权声明:本文内容由阿里云实名注册用户自发贡献,版权归原作者所有,阿里云开发者社区不拥有其著作权,亦不承担相应法律责任。具体规则请查看《阿里云开发者社区用户服务协议》和《阿里云开发者社区知识产权保护指引》。如果您发现本社区中有涉嫌抄袭的内容,填写侵权投诉表单进行举报,一经查实,本社区将立刻删除涉嫌侵权内容。

相关文章
【图像去噪】基于脉冲神经网络PCNN实现图像去噪附matlab代码
【图像去噪】基于脉冲神经网络PCNN实现图像去噪附matlab代码
26 0
【图像去噪】基于Bregman迭代结合TV全变分实现图像去噪附matlab代码
【图像去噪】基于Bregman迭代结合TV全变分实现图像去噪附matlab代码
20 0
【图像去噪】基于ITTM 滤波器实现图像去噪附matlab代码
【图像去噪】基于ITTM 滤波器实现图像去噪附matlab代码
24 0
【图像去噪】基于三边滤波器实现图像去噪附matlab代码
【图像去噪】基于三边滤波器实现图像去噪附matlab代码
45 0
【图像去噪】基于自适应布谷鸟算法优化维纳滤波器实现多光谱图像去噪附matlab代码
【图像去噪】基于自适应布谷鸟算法优化维纳滤波器实现多光谱图像去噪附matlab代码
62 0
【图像去噪】基于各向异性滤波实现图像去噪附matlab代码
【图像去噪】基于各向异性滤波实现图像去噪附matlab代码
20 0
【图像去噪】基于正则化实现图像去噪附matlab代码
【图像去噪】基于正则化实现图像去噪附matlab代码
38 0
【图像去噪】基于非局部欧几里德中值 (NLEM) 实现图像去噪附matlab代码
【图像去噪】基于非局部欧几里德中值 (NLEM) 实现图像去噪附matlab代码
16 0
【图像去噪】基于马尔可夫随机场实现图像去噪附matlab代码
【图像去噪】基于马尔可夫随机场实现图像去噪附matlab代码
57 0
【图像去噪】基于快速跨尺度小波降噪实现泊松损坏图像去噪处理附matlab代码
【图像去噪】基于快速跨尺度小波降噪实现泊松损坏图像去噪处理附matlab代码
13 0
+关注
Matlab科研工作室
博主简介:擅长智能优化算法、神经网络预测、信号处理、元胞自动机、图像处理、路径规划、无人机等多种领域的Matlab仿真,相关matlab代码问题关注公众号 天天Matlab。
343
文章
0
问答
文章排行榜
最热
最新
相关电子书
更多
低代码开发师(初级)实战教程
立即下载
阿里巴巴DevOps 最佳实践手册
立即下载
冬季实战营第三期:MySQL数据库进阶实战
立即下载