基于遗传算法的二进制图像重建(Matlab代码实现)

news/2024/11/28 19:25:18/

目录

💥1 概述

📚2 运行结果

🎉3 参考文献


💥1 概述

     图像分辨率是评价图像成像系统的---项重要技术指标.图像分辨率又分为图像的空间分辨率、灰度分辨率和频谱分辨率等.在实际应用中,受到各种因素的限制,通过现有条件要达到所需求的分辨率往往是个难题.在我国,即便是计划发射的实时传输型侦察卫星,图像的地面分辨率与之相比,不仅远远低于美俄的发展水平,同时也达不到法国、日本以及以色列等国的技术水平.可见,如何利用采用低分辨率技术的像机来获取高分辨率图像已成为目前发展我国航天、军事等---项必不可少的关键技术.早在20世纪60年代就有人提出了超分辨率的概念,最初的方法包括频谐外推法、能量连续降减法、长椭球函数法、线性均方外推法以及叠加正弦模板法等.直到今天,它仍然是图像处理领域有待进-一步研究的热点课题之一.

📚2 运行结果

部分代码:

clear
clc
close all

fileName = 'IMG1.jpg'
IMG_REF_BINARY = PreparePhoto(fileName);

%% controling paramters of the GA algortihm
Problem.obj = @FitnessFunction;
Problem.nVar =  size(IMG_REF_BINARY,1) *  size(IMG_REF_BINARY,2);

M = 30; % number of chromosomes (cadinate solutions)
N = Problem.nVar;  % number of genes (variables)
MaxGen = 1000;
Pc = 0.95
Pm = 0.001;
Er = 0.2;

visualization = 1; % set to 0 if you do not want the convergence curve 

figure
subplot(1,2,1)
imshow(IMG_REF_BINARY)
title('Original image')

[BestChrom]  = GeneticAlgorithm (M , N, MaxGen , Pc, Pm , Er , Problem.obj , visualization )

disp('The best chromosome found: ')
BestChrom.Gene
disp('The best fitness value: ')
BestChrom.Fitness

function [ newPopulation2 ] = elitism(population , newPopulation, Er)

M = length(population.Chromosomes); % number of individuals 
Elite_no = round(M * Er);

[max_val , indx] = sort([ population.Chromosomes(:).fitness ] , 'descend');
    
% The elites from the previous population
for k = 1 : Elite_no
    newPopulation2.Chromosomes(k).Gene  = population.Chromosomes(indx(k)).Gene;
    newPopulation2.Chromosomes(k).fitness  = population.Chromosomes(indx(k)).fitness;
end

% The rest from the new population
for k = Elite_no + 1 :  M
    newPopulation2.Chromosomes(k).Gene  = newPopulation.Chromosomes(k).Gene;
    newPopulation2.Chromosomes(k).fitness  = newPopulation.Chromosomes(k).fitness;
end

end

🎉3 参考文献

[1]Seyedali Mirjalili (2022). Binary Image Reconstruction Using The Genetic Algorithm.

[2]张月英.一种基于并行遗传算法的超分辨率图像重建方法研究[J].山东师范大学学报:自然科学版,2010(2):151-154


http://www.ppmy.cn/news/1993.html

相关文章

如何配置settings.py文件

文章目录配置settings.py文件1) 修改语言与时区配置2) 设置时区不敏感3) 配置项目所需数据库4)学会阅读报错信息配置settings.py文件 《settings.py配置文件(详解)》一文中,将 settings.py 配置文件的每一项给大家做了介绍。在开…

建模杂谈系列182 FuncDict2_模式设计

说明 只有简单的模式才有生命力 要解决复杂的问题,应当基于简单的结构。真理应该是可以瞬间被理解的,我们可以从其他领域进行迁移学习。 内容 FuncDict如果是一个工具,我要用来做什么? 目前我计划使用前端编辑器替代本地编辑器,其中很重要的一部分就是调试。当开发者在前…

计算机毕业设计:基于HTML学校后台用户登录界面模板源码

🎉精彩专栏推荐 💭文末获取联系 ✍️ 作者简介: 一个热爱把逻辑思维转变为代码的技术博主 💂 作者主页: 【主页——🚀获取更多优质源码】 🎓 web前端期末大作业: 【📚毕设项目精品实战案例 (10…

A股交易接口如何用c++实现查询股东代码的?

A股交易接口是投资者获取股票市场数据的一个工具,使用A股交易接口能够得到更多更准确的信息,让你在股市当中,操作起来更加便捷和有效,对股市市场行情动向判断更加的准确一些。 股票交易接口支持各类数据的查询,那么今…

Chain Surfase Test - java 链表经典 OJ 面试题 - 巨细

效果图 LeetCode - 206. 反转链表 代码如下: /** Definition for singly-linked list. public class ListNode { int val;ListNode next;ListNode() {}ListNode(int val) { this.val val; }ListNode(int val, ListNode next) { this.val val; this.next next; …

常用脚本语言简述

常用脚本语言 一、WebAssembly(WASM) WebAssembly是什么?WebAssembly即WASM, WebAssembly是一种新的编码格式并且可以在浏览器中运行,WASM可以与JavaScript并存,WASM更类似一种低级的汇编语言。 WebAsse…

【SSM整合】SpringMVC + Spring + Mybatis整合详细教程

前言 本文为 SpringMVC Spring Mybatis整合教程 相关详细介绍,从数据库数据准备、相关依赖包添加、创建项目基本结构和配置框架,到Mybatis层的编写、Spring层的编写、SpringMVC层的编写,再到前端页面编写等,最后进行运行与测试&…

【信息检索与数据挖掘期末复习】(五)Language Model

什么是语言模型? 一个传统的语言生成模型可以用于识别或生成字符串 我们可以将有穷自动机看作是一种确定性的语言模型 基本模型:每一个文档都是通过一个像这样的自动机生成的,只不过这种自动机是有概率的 一种最简单的语言模型等价于一个…