日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 人工智能 > 循环神经网络 >内容正文

循环神经网络

基于matlab的低秩结构重构算法仿真实现,对比ALM,IT,APG,ADMM

發布時間:2023/12/15 循环神经网络 29 豆豆
生活随笔 收集整理的這篇文章主要介紹了 基于matlab的低秩结构重构算法仿真实现,对比ALM,IT,APG,ADMM 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

目錄

一、理論基礎

二、核心程序

三、測試結果


一、理論基礎

? ? ? ?從數學上講, 矩陣的秩反應了矩陣的固有屬性, 矩陣的低秩性是指矩陣的秩相對于矩陣的行數和列數而言很小.低秩矩陣稀疏分解模型是將已知矩陣M (M∈Rm×n) 分解為一個低秩矩陣部分L (L∈Rm×n, rank (L) ≤m, n) 和一個稀疏矩陣部分S (S∈Rm×n) , 即M=L+S.
?

增廣拉格朗日乘子法(ALM)??????????????????

迭代閾值算法(IT)

加速近端梯度算法(APG)

交替方向乘子算法(ADMM)

二、核心程序

增廣拉格朗日乘子法(ALM)??????????????????

clc; clear; close all; warning off; addpath 'func\'I1=imresize(imread('1.jpg'),[256,256]); I2=imresize(imread('2.jpg'),[256,256]);Init = I2; figure; subplot(121); imshow(Init); title('原始圖'); %original image x = double(rgb2gray(Init));tic; [A_hat,E_hat,iter] = func_ALM(x,0.1,0.05,100); toc;subplot(122); imshow(A_hat,[]); title('ALM處理結果');

迭代閾值算法(IT)

clc; clear; close all; warning off; addpath 'func\'I1=imresize(imread('1.jpg'),[256,256]); I2=imresize(imread('2.jpg'),[256,256]);Init = I2; figure; subplot(121); imshow(Init);tic; title('原始圖'); %迭代閾值算法 Im = rgb2gray(Init); [x,y]= size(Im); b = double(Im); zd = double(max(Im)); zx = double(min(Im)); T = double((zd+zx))/2; count= double(0); while 1 % 迭代最佳閾值分割算法 count=count+1; S0=0.0; n0=0.0; S1=0.0; n1=0.0; for i=1:x for j=1:y if double(Im(i,j))>=T %大于閾域值圖像點灰度值累加 S1=S1+double(Im(i,j)); %大于閾域值圖像點個數累加 n1=n1+1; else %小于閾域值圖像點灰度值累加 S0=S0+double(Im(i,j)); %小于閥域值圖像點個數累加 n0=n0+1; end end end %求小于閥域值均值 T0=S0/n0; %求大于閥域值均值 T1=S1/n1; %迭代至前后兩次閥域值相差幾乎為0時if abs(T-((T0+T1)/2))<0.1 break; else %在閾值T下,迭代閾值的計算過程T=(T0+T1)/2; end end toc T i1=im2bw(Im,T/255); % 圖像在最佳閾值下二值化 subplot(122) imshow(i1) title(['迭代后最終閾值輸出:',num2str(T)]);

加速近端梯度算法(APG)

clc; clear; close all; warning off; addpath 'func\'I1=imresize(imread('1.jpg'),[256,256]); I2=imresize(imread('2.jpg'),[256,256]);Init = I2; figure; subplot(131); imshow(Init); title('原始圖'); tic [A_hat,E_hat] = func_APG(double(rgb2gray(Init)),0.05,1000); toc subplot(132); imshow(A_hat,[]); title('low-rank結果'); subplot(133); imshow(E_hat); title('處理誤差');

交替方向乘子算法(ADMM)

clc; clear; close all; warning off; addpath 'func\'I1=imresize(imread('1.jpg'),[256,256]); I2=imresize(imread('2.jpg'),[256,256]);Init = I2; figure; subplot(121); imshow(Init); title('原始圖'); %original image tic x = double(rgb2gray(Init)); [M,N] = size(x); %FFT2 [H_FFT,HC_FFT]=func_hfft(x);A = @(x) real(ifft2(H_FFT.*fft2(x))); AT = @(x) real(ifft2(HC_FFT.*fft2(x)));global calls; calls = 0; A = @(x) callcounter(A,x); AT = @(x) callcounter(AT,x); %觀測矩陣 Ax = A(x); Psig = norm(Ax,'fro')^2/(M*N); y = Ax; %parameters lambda = 2.0e-2; mu = lambda/10; outeriters = 500; tol = 1e-5; %TV Phi_TV = @(x) TVnorm(x); chambolleit= 10; Psi_TV = @(x,th) mex_vartotale(x,th,'itmax',chambolleit); alpha = 1.2; filter_FFT = 1./(abs(H_FFT).^2 + mu*alpha); invLS = @(x) real(ifft2(filter_FFT.*fft2( x ))); invLS = @(x) callcounter(invLS,x);[x_salsa, numA, numAt, objective1, distance, times1, mses1] = func_ADMM(y, A, lambda, 'MU', mu, 'AT', AT, 'StopCriterion', 1,'True_x', x, 'ToleranceA', tol, 'MAXITERA', outeriters, 'Psi', Psi_TV, 'Phi', Phi_TV, 'TVINITIALIZATION', 1, 'TViters', 10,'LS', invLS, 'VERBOSE', 0);toc subplot(122); imshow(x_salsa,[]); title('admm處理結果');

三、測試結果

?

?A23-41

?????????

總結

以上是生活随笔為你收集整理的基于matlab的低秩结构重构算法仿真实现,对比ALM,IT,APG,ADMM的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。