【图像增强】基于matlab量子遗传算法优化beta自适应图像增强【含Matlab源码 2259期】

news/2024/11/29 8:45:55/

⛄一、量子遗传算法自适应增强图像

1 图像增强概述
图像增强就是将原来不清楚的图像变得清晰或把我们感兴趣的某些特征强调出来,以改善图像的视觉效果或便于对图像进行其他处理。图像增强技术大致可分为频域法、空域法和模糊处理三大类。其中,频域法是把原图像进行某种变换(如傅立叶变换),在变换域中进行处理以达到增强的目的;空域法则是直接对原始图像进行处理,主要算法包括直方图均衡、直方图变换、边缘提取、平滑滤波、局部灰度和增益控制等;而模糊增强方法是将空域中的原始图像数据通过模糊化映像,然后利用特征平面中的各种性质对图像信息进行处理,最后将处理后的信息数据逆映像到空间域中去,从而获得增强后的图像。
这些传统的图像增强方法都存在诸如普适性较差、计算量较大、人工干预变换参数的选取等不足之处。因此,建立一种能根据图像灰度性质自动调节的图像自适应增强算法是非常有意义的。Tubbs提出归一化的非完全Beta函数B(a, β) , 不同的a、β值分别对应于不同类型的图像非线性变换曲线,对各种灰度特征的图像进行调整。本文下面介绍了利用量子遗传算法进行非线性变换的参数α、β的自适应选择,最终实现灰度图像的自适应增强的方法。

2 灰度图像的自适应增强
2.1典型图像增强变换函数

从视觉效果来看,一般的图像有偏暗、偏亮、或灰度集中在某一区域三种情况,与此相对应的变换函数有四类,如图12所示。
在这里插入图片描述
图12中,横坐标为原图像的灰度,纵坐标为处理后的灰度。(a)类变换对较暗区域进行拉伸,(b)类变换对较亮区域进行拉伸,©类变换对中间区域进行拉伸而对两端压缩,(d)类变换则对两端进行拉伸而对中间区域压缩,©类和(d)类变换可用于处理灰度集中于某一区域的图像。
文献[24介绍了用归一化的非完全Beta函数来实现图12所示的四类变换曲线的自动拟合。归一化的非完全Beta函数F(u) 定义为:
在这里插入图片描述
2.2利用量子遗传算法自适应选择非线性变换函数的参数
通常αx,β的值的确定采用类似穷举法或人工干预的方法,这种方法耗时且无智能性。本文利用量子遗传算法针对每幅图像自动地找出非线性变换函数最优的α,β值。具体处理步骤如下:
第一步设f(x,y)表示坐标为(x,y)的原始图像灰度值,f"(x,y)为其处理后的灰度值。在处理前先进行归一化处理:
在这里插入图片描述
在这里插入图片描述
第三步根据g’(x,y)的值可得到输出图像f’(x,y)。
f'(x, y) =(Lmm-Lmn) g'(x, y) +Lan(12)
第四步利用文献24]介绍的图像质量评价函数作为量子遗传算法的适应度函数,
如式(11):
在这里插入图片描述
其中M, N分别为图像的宽和高, n=M×N, i表示某染色体。Fitness(i) 的值越大,则图像灰度分布越均匀,图像对比度越高,图像质量越好。
第五步选择适应值最大的个体作为当前代的最优个体,利用量子旋转门对其他个体进行更新,得到新的群体,重复上述步骤直到最终得到较优的非线性变换函数参数α和β。

⛄二、部分源代码

% 利用量子遗传算法进行图像增强
clc,clear all;close all;
%% read picture
img=imread(‘cameraman.tif’);
% img=imresize(img,0.7);
figure(1);
imhist(img); % 原始图像直方图
img=double(img);
[row,colume]=size(img); % 图像大小
num_pixel=row*colume; % 像素个数
%% 利用QGA求最优的alpha, beta
MAX_Geneic=100; % 遗传代数
sizePopu=30; % 初始种群数目
tic;
best=QGA_Sharpen(img,MAX_Geneic,sizePopu);
disp(['The total time is ’ num2str(toc) ‘s’]);
fprintf(‘The final alpha is %f\n’,best.B(1));
fprintf(‘The final beta is %f\n’,best.B(2));
fprintf(‘The best fitness value is %f\n’,best.fitnessVal);
%% 画出非线性函数(Beta函数)图像
x=0:0.01:1;
y=pdf(‘beta’,x,best.B(1),best.B(2));
figure(4);
plot(x,y);
%% 处理之后的图像灰度值
img_sharp=best.sharpImg;
figure(5);
imhist(uint8(img_sharp)); % 锐化后图像直方图
figure;
subplot(121)
imshow(img,[]); %
title(‘原始图像’)
subplot(122)
imshow(uint8(img_sharp));
title(‘增强图像’)% 可视化处理后图像
%imwrite(uint8(cameraman),‘test2_opt.jpg’);

⛄三、运行结果

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

⛄四、matlab版本及参考文献

1 matlab版本
2014a

2 参考文献
[1]黄蓓.量子遗传算法及其在图像自适应增强中的应用研究[D].江南大学

3 备注
简介此部分摘自互联网,仅供参考,若侵权,联系删除


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

相关文章

【Java基础学习打卡12】Java入门程序

目录 前言一、Java程序开发运行流程二、Java程序源代码编写三、Java程序源代码编译四、Java程序运行五、Java入门程序问题总结 前言 本文首先介绍Java程序开发运行基础流程,然后先进行程序源代码编写,然后对Java程序代码进行编译,最后要运行…

POJ - 2259 团队队列

题目链接 https://vjudge.net/problem/POJ-2259 题解 在任何时刻,同一个小组的人只要来到了队伍,就会站在一起,所以我们建立一个队列q0存储队伍中所有小组的编号,再为每个小组i建立一个队列qi存储队伍中这个小组的所有成员&…

LeetCode-2259. 移除指定数字得到的最大结果_Python

给你一个表示某个正整数的字符串 number 和一个字符 digit 。 从 number 中 恰好 移除 一个 等于 digit 的字符后,找出并返回按 十进制 表示 最大 的结果字符串。生成的测试用例满足 digit 在 number 中出现至少一次。 示例 1: 输入:numbe…

C++【STL】之priority_queue学习

优先级队列 优先级队列priority_queue也是STL库中容器适配器的一种,常用于进行数据优先级的处理,说到这儿是不是发现有些熟悉,没错它和我们之前讲解的堆本质上就是一个东西,底层都是数组存储的完全二叉树,它在STL库中…

数据结构——栈的实现(动态增长版本)

堆栈(stack)又称为栈或堆叠,是计算机科学中的一种抽象资料类型,只允许在有序的线性资料集合的一端(称为堆栈顶端,top)进行加入数据(push)和移除数据(pop&…

低成本3X3拼接方案

视品数字提供MS1825做为视频处理芯片,实现高性价比拼方案,可实现、2X2、3X3、4X4等常用拼接模式,单芯片可以做到2X2拼接,4X4拼也只需要一个分配芯片加4个视频处理芯片,这款3X3拼接器,支持1路HDMI 输入9路HDMI输出&…

CAVE沉浸式折屏

CAVE沉浸式折幕:CAVE沉浸式折幕分为三折幕、BOX四折幕、五折幕、ScreenX幕、T形幕、L形幕等,是一种基于投影的沉浸式虚拟现实显示系统,其特点是分辨率高、沉浸感强、交互性好,由3个面以上(含3面)硬质背投影…

互动投影系统多媒体虚拟主持人的应用

互动投影系统虚拟主持人是现在非常受欢迎的一种全息投影的产品,主要运用三维动画(高清抠像拍摄)、人机互动红外感应装置、全息显示、投影机背投等技术来实现,现在越来越多的数字展厅展馆都会选择左昂多媒体虚拟主持人来代替主持人,其带来的优…