【图像评价】图像质量评价【含GUI Matlab源码 1373期】

本文详细介绍了使用Matlab进行图像处理的实验,包括IQA函数中的图像质量评估(如PSNR和SSIM)、噪声添加操作(Gaussian、Poisson和多模式选择),以及Matlab2014a版本的使用。作者分享了部分源代码,展示了如何通过Matlab进行图像印刷质量的客观评价和噪声处理技术的实际应用。

💥💥💥💥💥💥💥💥💞💞💞💞💞💞💞💞💞Matlab武动乾坤博客之家💞💞💞💞💞💞💞💞💞💥💥💥💥💥💥💥💥
🚀🚀🚀🚀🚀🚀🚀🚀🚀🚀🚤🚤🚤🚤🚤🚤🚤🚤🚤🚤🚤🚤🚤🚤🚤🚤🚤🚤🚤🚤🚀🚀🚀🚀🚀🚀🚀🚀🚀🚀
在这里插入图片描述
🔊博主简介:985研究生,Matlab领域科研开发者;

🚅座右铭:行百里者,半于九十。

🏆代码获取方式:
优快云 Matlab武动乾坤—代码获取方式

更多Matlab图像处理仿真内容点击👇
Matlab图像处理(进阶版)

⛳️关注优快云 Matlab武动乾坤,更多资源等你来!!

⛄一、简介

理论知识参考文献:图像印刷质量的客观评价——以报纸印刷为例

⛄二、部分源代码

function varargout = IQA(varargin)

% Begin initialization code - DO NOT EDIT
gui_Singleton = 1;
gui_State = struct(‘gui_Name’, mfilename, …
‘gui_Singleton’, gui_Singleton, …
‘gui_OpeningFcn’, @IQA_OpeningFcn, …
‘gui_OutputFcn’, @IQA_OutputFcn, …
‘gui_LayoutFcn’, [] , …
‘gui_Callback’, []);
if nargin && ischar(varargin{1})
gui_State.gui_Callback = str2func(varargin{1});
end

if nargout
[varargout{1:nargout}] = gui_mainfcn(gui_State, varargin{:});
else
gui_mainfcn(gui_State, varargin{:});
end
% End initialization code - DO NOT EDIT

% — Executes just before IQA is made visible.
function IQA_OpeningFcn(hObject, eventdata, handles, varargin)

handles.output = hObject;

% Update handles structure
guidata(hObject, handles);

ResetButton_Callback(hObject, eventdata, handles)

% — Outputs from this function are returned to the command line.
function varargout = IQA_OutputFcn(hObject, eventdata, handles)

% Get default command line output from handles structure
varargout{1} = handles.output;

% — Executes on button press in BrowseImage.
function BrowseImage_Callback(hObject, eventdata, handles)

ResetButton_Callback(hObject, eventdata, handles);

global image;
[filename pathname] = uigetfile({‘.jpg’;'.bmp’;‘.tif’;'.png’},‘File Selector’);
x = strcat(pathname, filename);
image=imread(x);
axes(handles.axes1);
imshow(image);

% — Executes on button press in AddNoise.
function AddNoise_Callback(hObject, eventdata, handles)

global image;
global addnoisyimage;
global mean;
global variance;
global AdditiveNoiseMenu;
if (strcmp(AdditiveNoiseMenu, ‘Gaussian’))
addnoisyimage = imnoise(image, ‘Gaussian’, mean, variance);
elseif (strcmp(AdditiveNoiseMenu, ‘Poisson’))
addnoisyimage = imnoise(image, ‘Poisson’);
elseif (strcmp(AdditiveNoiseMenu, ‘Select Additive Noise Type’))
addnoisyimage = image;
end
axes(handles.axes2);
imshow(addnoisyimage);

% — Executes on button press in MultiNoise.
function MultiNoise_Callback(hObject, eventdata, handles)
global noisedensity;
global variance_multi;
global image;
global multinoisyimage;
global MultiplicativeNoiseMenu;
if (strcmp(MultiplicativeNoiseMenu, ‘Salt & Pepper’))
multinoisyimage = imnoise(image, ‘salt & pepper’, noisedensity);
elseif (strcmp(MultiplicativeNoiseMenu, ‘Speckle’))
multinoisyimage = imnoise(image, ‘speckle’, variance_multi);
elseif (strcmp(MultiplicativeNoiseMenu, ‘Select Multiplicative Noise’))
multinoisyimage = image;
end
axes(handles.axes3);
imshow(multinoisyimage);

% — Executes on button press in CheckPSNR.
function CheckPSNR_Callback(hObject, eventdata, handles)

global addnoisyimage;
global multinoisyimage;
global image;
global s;
global u;
global justforcontrol;

if (get(hObject, ‘Value’) == get(hObject,‘Max’))
justforcontrol=1;
s=psnr(addnoisyimage, image);
u=psnr(multinoisyimage, image);
else
justforcontrol=0;
s=‘–’;
u=‘–’;
end

% Hint: get(hObject,‘Value’) returns toggle state of CheckPSNR
function s = psnr(addnoisyimage, image)

if(ndims(addnoisyimage)==3)
addnoisyimage = rgb2gray(addnoisyimage);
end

if(ndims(image)==3)
image = rgb2gray(image);
end

addnoisyimage=double(addnoisyimage);
image=double(image);

[m,n] = size(addnoisyimage);

peak=255255m*n;

noise = addnoisyimage - image;
nostotal = sum(sum(noise.*noise));

if nostotal == 0
s = ‘INF’; %% INF. clean image
else
s = 10 * log10(peak./nostotal);
end

% — Executes on button press in CheckSSIM.
function CheckSSIM_Callback(hObject, eventdata, handles)

global addnoisyimage;
global multinoisyimage;
global image;
global t;
global v;
global justforcontrol2;
K = [0.05 0.05];
window = ones(8);
L = 100;
Z = [0.01 0.03];
if (get(hObject, ‘Value’) == get(hObject,‘Max’))
justforcontrol2=1;
t=ssim(addnoisyimage, image, Z, window, L);
v=ssim(multinoisyimage, image, Z, window, L);
else
justforcontrol2=0;
t=‘–’;
v=‘–’;
end

% Hint: get(hObject,‘Value’) returns toggle state of CheckSSIM
function [mssim] = ssim(img1, img2, Z, window, L)

if(ndims(img1)==3)
img1=rgb2gray(img1);
end
if(ndims(img2)==3)
img2=rgb2gray(img2);
end

[rows,cols]=size(img2);
img1=imresize(img1,[rows cols]);

if (nargin < 2 || nargin > 5)
mssim = -Inf;
ssim_map = -Inf;
return;
end

if (size(img1) ~= size(img2))
mssim = -Inf;
ssim_map = -Inf;
return;
end

[M N] = size(img1);

if (nargin == 2)
if ((M < 11) || (N < 11))
mssim = -Inf;
ssim_map = -Inf;
return
end
window = fspecial(‘gaussian’, 11, 1.5); %
Z(1) = 0.01; % default settings
Z(2) = 0.03;
L = 255;
end

if (nargin == 3)
if ((M < 11) || (N < 11))
mssim = -Inf;
ssim_map = -Inf;
return
end
window = fspecial(‘gaussian’, 11, 1.5);
L = 255;
if (length(Z) == 2)
if (Z(1) < 0 || Z(2) < 0)
mssim = -Inf;
ssim_map = -Inf;
return;
end
else
mssim = -Inf;
ssim_map = -Inf;
return;
end
end

⛄三、运行结果

在这里插入图片描述

⛄四、matlab版本及参考文献

1 matlab版本
2014a

2 参考文献
[1]张小利,李雄飞,李军.融合图像质量评价指标的相关性分析及性能评估[J].自动化学报. 2014,40(02)

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

🍅 仿真咨询
1 各类智能优化算法改进及应用

生产调度、经济调度、装配线调度、充电优化、车间调度、发车优化、水库调度、三维装箱、物流选址、货位优化、公交排班优化、充电桩布局优化、车间布局优化、集装箱船配载优化、水泵组合优化、解医疗资源分配优化、设施布局优化、可视域基站和无人机选址优化

2 机器学习和深度学习方面
卷积神经网络(CNN)、LSTM、支持向量机(SVM)、最小二乘支持向量机(LSSVM)、极限学习机(ELM)、核极限学习机(KELM)、BP、RBF、宽度学习、DBN、RF、RBF、DELM、XGBOOST、TCN实现风电预测、光伏预测、电池寿命预测、辐射源识别、交通流预测、负荷预测、股价预测、PM2.5浓度预测、电池健康状态预测、水体光学参数反演、NLOS信号识别、地铁停车精准预测、变压器故障诊断

3 图像处理方面
图像识别、图像分割、图像检测、图像隐藏、图像配准、图像拼接、图像融合、图像增强、图像压缩感知

4 路径规划方面
旅行商问题(TSP)、车辆路径问题(VRP、MVRP、CVRP、VRPTW等)、无人机三维路径规划、无人机协同、无人机编队、机器人路径规划、栅格地图路径规划、多式联运运输问题、车辆协同无人机路径规划、天线线性阵列分布优化、车间布局优化

5 无人机应用方面
无人机路径规划、无人机控制、无人机编队、无人机协同、无人机任务分配

6 无线传感器定位及布局方面
传感器部署优化、通信协议优化、路由优化、目标定位优化、Dv-Hop定位优化、Leach协议优化、WSN覆盖优化、组播优化、RSSI定位优化

7 信号处理方面
信号识别、信号加密、信号去噪、信号增强、雷达信号处理、信号水印嵌入提取、肌电信号、脑电信号、信号配时优化

8 电力系统方面
微电网优化、无功优化、配电网重构、储能配置

9 元胞自动机方面
交通流 人群疏散 病毒扩散 晶体生长

10 雷达方面
卡尔曼滤波跟踪、航迹关联、航迹融合

评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值