求基于BP神经网络的图像复原算法的matlab代码

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了求基于BP神经网络的图像复原算法的matlab代码相关的知识,希望对你有一定的参考价值。

硕士论文是这个方向,不知道谁有这方面的matlab代码或者例子,传一下给我,谢谢。

参考技术A function Solar_SAE
tic;
n = 300;
m=20;
train_x = [];
test_x = [];
for i = 1:n
%filename = strcat(['D:\Program Files\MATLAB\R2012a\work\DeepLearn\Solar_SAE\64_64_3train\' num2str(i,'%03d') '.bmp']);
%filename = strcat(['E:\matlab\work\c0\TrainImage' num2str(i,'%03d') '.bmp']);
filename = strcat(['E:\image restoration\3-(' num2str(i) ')-4.jpg']);
b = imread(filename);
%c = rgb2gray(b);
c=b;
[ImageRow ImageCol] = size(c);
c = reshape(c,[1,ImageRow*ImageCol]);
train_x = [train_x;c];
end
for i = 1:m
%filename = strcat(['D:\Program Files\MATLAB\R2012a\work\DeepLearn\Solar_SAE\64_64_3test\' num2str(i,'%03d') '.bmp']);
%filename = strcat(['E:\matlab\work\c0\TestImage' num2str(i+100,'%03d') '-1.bmp']);
filename = strcat(['E:\image restoration\3-(' num2str(i+100) ').jpg']);
b = imread(filename);
%c = rgb2gray(b);
c=b;
[ImageRow ImageCol] = size(c);
c = reshape(c,[1,ImageRow*ImageCol]);
test_x = [test_x;c];
end
train_x = double(train_x)/255;
test_x = double(test_x)/255;
%train_y = double(train_y);
%test_y = double(test_y);

% Setup and train a stacked denoising autoencoder (SDAE)
rng(0);
%sae = saesetup([4096 500 200 50]);
%sae.ae1.activation_function = 'sigm';
%sae.ae1.learningRate = 0.5;
%sae.ae1.inputZeroMaskedFraction = 0.0;

%sae.ae2.activation_function = 'sigm';
%sae.ae2.learningRate = 0.5
%%sae.ae2.inputZeroMaskedFraction = 0.0;

%sae.ae3.activation_function = 'sigm';
%sae.ae3.learningRate = 0.5;
%sae.ae3.inputZeroMaskedFraction = 0.0;

%sae.ae4.activation_function = 'sigm';
%sae.ae4.learningRate = 0.5;
%sae.ae4.inputZeroMaskedFraction = 0.0;

%opts.numepochs = 10;
%opts.batchsize = 50;
%sae = saetrain(sae, train_x, opts);
%visualize(sae.ae1.W1(:,2:end)');

% Use the SDAE to initialize a FFNN
nn = nnsetup([4096 1500 500 200 50 200 500 1500 4096]);
nn.activation_function = 'sigm';
nn.learningRate = 0.03;
nn.output = 'linear'; % output unit 'sigm' (=logistic), 'softmax' and 'linear'

%add pretrained weights
%nn.W1 = sae.ae1.W1;
%nn.W2 = sae.ae2.W1;
%nn.W3 = sae.ae3.W1;
%nn.W4 = sae.ae3.W2;
%nn.W5 = sae.ae2.W2;
%nn.W6 = sae.ae1.W2;
%nn.W7 = sae.ae2.W2;
%nn.W8 = sae.ae1.W2;

% Train the FFNN
opts.numepochs = 30;
opts.batchsize = 150;
tx = test_x(14,:);
nn1 = nnff(nn,tx,tx);
ty1 = reshape(nn1.a9,64,64);

nn = nntrain(nn, train_x, train_x, opts);
toc;
tic;
nn2 = nnff(nn,tx,tx);
toc;
tic;
ty2 = reshape(nn2.a9,64,64);
tx = reshape(tx,64,64);
tz = tx - ty2;
tz = im2bw(tz,0.1);
%imshow(tx);
%figure,imshow(ty2);
%figure,imshow(tz);
ty = cat(2,tx,ty2,tz);
montage(ty);
filename3 = strcat(['E:\image restoration\3.jpg']);
e=imread(filename3);

f= rgb2gray(e);
f=imresize(f,[64,64]);
%imshow(ty2);
f=double (f)/255;
[PSNR, MSE] = psnr(ty2,f)
imwrite(ty2,'E:\image restoration\bptest.jpg','jpg');
toc;
%visualize(ty);
%[er, bad] = nntest(nn, tx, tx);
%assert(er < 0.1, 'Too big error');
参考技术B 已经发私信给你了追问

没看到啊

追答

百度的私信,我无语啊,留下我的邮箱吧,给我发信吧。ajitaiajitai@163.com

参考技术C 去知网搜索吧

毕业设计/Matlab系列基于BP神经网络的图像压缩技术及实现

Date: 2022.5.17


文章目录

前言

在大学毕业设计的时候,课题要求实现《基于BP神经网络的图像压缩技术及实现》,采用Matlab语言实现,效果图如下。

需要相关代码可以在关注博主和订阅本专栏后加文章最后的QQ名片咨询博主。

1、实现简介

1.1、训练样本构造

将训练用图像的所有像素点作为压缩网络的输入,为控制网络的规模,对图像进行划分。设训练用图像由N×N个像素点构成,将其划分成M个子图像块,每个子图像块分别由p×p的子像素块构成。为加快训练网络的收敛性,需要对上述生成的像素块矩阵进行归一化处理。对神经网络进行训练用构建的输入矩阵(每一列代表一个输入模式)作为目标输出矩阵,在Matlab中调用训练算法,即调用newff函数开始训练网络,函数的输入参数BTF取值“ trainlm” ,TFi取值“ tansig、logsig”。
在这次研究中,采用均值分布预处理:待处理图像的灰度范围为,变换域为,设待处理的像素灰度值为,则对于所有过程的

以上是关于求基于BP神经网络的图像复原算法的matlab代码的主要内容,如果未能解决你的问题,请参考以下文章

图像重建基于matlab BP神经网络双基地SAR成像图像重建含Matlab源码 1950期

基于蝙蝠算法优化BP神经网络的数据分类算法及其MATLAB实现-附代码

基于GA优化的BP网络算法分析与MATLAB实现matlab优化算法三

基于matlab的退化图像复原------维纳滤波复原

基于MATLAB的神经网络BP算法改进LM算法的交通流量的源代码!

毕业设计/Matlab系列基于BP神经网络的图像压缩技术及实现