基于自適應曲線閾值和非局部稀疏正則化的壓縮感知圖像復原研究【自適應曲線閾值去除加性穩態白/有色高斯噪聲】(Matlab代碼實現)

?💥💥💞💞歡迎來到本博客????💥💥

🏆博主優勢:🌞🌞🌞博客內容盡量做到思維縝密,邏輯清晰,為了方便讀者。

??座右銘:行百里者,半于九十。

📋📋📋本文目錄如下:🎁🎁🎁

目錄

💥1 概述

📚2 運行結果

🎉3?參考文獻

🌈4 Matlab代碼實現


💥1 概述

文獻來源:

?壓縮傳感(CS)是最近出現的技術,也是信號和圖像處理中廣泛研究的問題,它提出了一種新的框架,用于以明顯低于奈奎斯特速率的速率同時采樣和壓縮稀疏或可壓縮信號。也許,設計一個反映圖像稀疏先驗信息的有效正則化項在CS圖像恢復中起著至關重要的作用。近年來,局部平滑度和非局部自相似性都導致了CS圖像恢復的先驗稀疏性。本文首先,建立了自適應曲線閾值判據,試圖自適應去除CS恢復過程中恢復圖像中出現的擾動,強加稀疏性。此外,還建立了一種新的稀疏性度量,稱為聯合自適應稀疏性正則化(JASR),該度量在變換域中同時強制執行局部稀疏性和非局部三維稀疏性。然后,提出了一種基于JASR的高保真CS圖像恢復技術——CS-JASR。為了有效地求解所提出的相應優化問題,我們采用了拆分布雷格曼迭代。大量的實驗結果證明了與目前最先進的CS圖像修復方法相比,所提方法的充分性和有效性。

原文摘要:

Compressive sensing (CS) is a recently emerging technique and an extensively studied problem in signal and image processing, which suggests a new framework for the simultaneous sampling and compression of sparse or compressible signals at a rate significantly below the Nyquist rate. Maybe, designing an effective regularization term reflecting the image sparse prior information plays a critical role in CS image restoration. Recently, both local smoothness and nonlocal self-similarity have led to superior sparsity prior for CS image restoration. In this paper, first, an adaptive curvelet thresholding criterion is developed, trying to adaptively remove the perturbations appeared in recovered images during CS recovery process, imposing sparsity. Furthermore, a new sparsity measure called joint adaptive sparsity regularization (JASR) is established, which enforces both local sparsity and nonlocal 3-D sparsity in transform domain, simultaneously. Then, a novel technique for high-fidelity CS image recovery via JASR is proposed-CS-JASR. To efficiently solve the proposed corresponding optimization problem, we employ the split Bregman iterations. Extensive experimental results are reported to attest the adequacy and effectiveness of the proposed method comparing with the current state-of-the-art methods in CS image restoration.

📚2 運行結果

?

可視化代碼:

%%% displaying the images
figure,?

subplot(2,3,1), imagesc(noise), colormap('gray'),
colorbar, title('noise'), axis off

subplot(2,3,4), imagesc(fftshift(noise_FFT_PSD)), colormap('jet'),
colorbar, title('noise FFT-PSD'), axis off

subplot(2,3,2), imagesc(x), colormap('gray'),
colorbar, title('ground-truth'), axis off

subplot(2,3,3), imagesc(z), colormap('gray'),
colorbar, axis off, title(sprintf('noisy image\nPSNR=%0.2fdB',psnr_noisy))

subplot(2,3,5), imagesc(x_est_ksigma), colormap('gray'),
colorbar, axis off, title(sprintf('denoised image using k-sigma\nPSNR=%0.2fdB',psnr_ksigma))

subplot(2,3,6), imagesc(x_est_ACT), colormap('gray'),
colorbar, axis off, title(sprintf('denoised image using ACT\nPSNR=%0.2fdB',psnr_act))


%% ?Auxiliary function for generating Gaussian noise

function ?[noise, noise_FFT_PSD] = generate_Gaussian_noise(SizeX)
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
% generate_Gaussian_noise creates stationary white/colored Gaussian noise
% with respect to a convolutional kernel selected randomly.
%
%
% FUNCTION INTERFACE:
% ? ? ? ? [noise, noise_FFT_PSD] = generate_Gaussian_noise(SizeX)
%
% ________________________________________________________________________________
% ?INPUT: ? ? ? ?| ?CLASS: ?| DESCRIPTION:
% --------------------------------------------------------------------------------
% ?SizeX ? ? ? ? | (double) | Size of the ground-truth image.
%
%
% ________________________________________________________________________________
% ?OUTPUTS: ? ? ?| ?CLASS: ?| DESCRIPTION:
% --------------------------------------------------------------------------------
% ?noise ? ? ? ? | (double) | generated stationary Guassian noise.
% --------------------------------------------------------------------------------
% ?noise_FFT_PSD | (double) | the noise FFT-PSD (as size as SizeX). ?
%
%
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
kernel_type ?= randi([1 14]); % the randomly selected kernel for noise generation
normalizer ? = @(n) (n-mean(n(:)))./std(n(:)); % making the noise zero-mean with unit variance

🎉3?參考文獻

文章中一些內容引自網絡,會注明出處或引用為參考文獻,難免有未盡之處,如有不妥,請隨時聯系刪除。

Compressive Sensing Image Restoration Using Adaptive Curvelet Thresholding and Nonlocal Sparse Regularization | IEEE Journals & Magazine | IEEE Xplore

🌈4 Matlab代碼實現

本文來自互聯網用戶投稿,該文觀點僅代表作者本人,不代表本站立場。本站僅提供信息存儲空間服務,不擁有所有權,不承擔相關法律責任。
如若轉載,請注明出處:http://www.pswp.cn/news/35387.shtml
繁體地址,請注明出處:http://hk.pswp.cn/news/35387.shtml
英文地址,請注明出處:http://en.pswp.cn/news/35387.shtml

如若內容造成侵權/違法違規/事實不符,請聯系多彩編程網進行投訴反饋email:809451989@qq.com,一經查實,立即刪除!

相關文章

什么是媒體代發布?媒體代發布注意事項

傳媒如春雨,潤物細無聲,大家好,我是51媒體網胡老師。 媒體代發布是指將新聞稿或其他宣傳內容委托給專業的媒體代理機構或公司進行發布和推廣的活動。這些機構通常擁有豐富的媒體資源、人脈和經驗,能夠更好地將信息傳遞給目標受眾…

C語言 指針與內存之間的關系

一、內存與字節 一個內存單元一個字節一個地址 整型 int 類型中int類型的字節數是4 且一個字節表示八個bite位 一個二進制數位有著32個bite 所以又可以表示為:一個字節 8個比特位 32位數的二進制數位的八分之一 例如: int a 10; 該表達式…

項目實戰 — 消息隊列(9){編寫demo程序}

消息隊列服務器核心功能就是,提供了虛擬主機,交換機, 隊列,消息等概念的管理,實現三種典型的消息轉發方式,可以實現跨主機/服務器之間的生產者消費模型。 這里,就編寫一個demo,實現…

【實戰講解】數據血緣落地實施

?在復雜的社會分工協作體系中,我們需要明確個人定位,才能更好的發揮價值,數據也是一樣,于是,數據血緣應運而生。 今天這篇文章會全方位的講解數據血緣,并且給出具體的落地實施方案。 一、數據血緣是什么…

JAVA多線程和并發基礎面試問答(翻譯)

JAVA多線程和并發基礎面試問答(翻譯) java多線程面試問題 1. 進程和線程之間有什么不同? 一個進程是一個獨立(self contained)的運行環境,它可以被看作一個程序或者一個應用。而線程是在進程中執行的一個任務。Java運行環境是一個包含了不同的類和程序…

蘇州OV泛域名RSA加密算法https

RSA加密算法是一種非對稱加密算法,它被廣泛應用于信息安全領域。與對稱加密算法不同,RSA加密算法使用了兩個密鑰,一個公鑰和一個私鑰。公鑰可以公開,任何人都可以使用它加密信息,但只有私鑰的持有者才能解密信息。RSA加…

php如何對接偽原創api

在了解偽原創api的各種應用形態之后,我們繼續探討智能寫作背后的核心技術。需要說明的是,智能寫作和自然語言生成、自然語言理解、知識圖譜、多模算法等各類人工智能算法都有緊密的關聯,在百度的智能寫作實踐中,常根據實際需求將多…

全球勞動力革命,Papaya Global 打破薪資界限

員工需求和勞動力結構的進一步變化,只會增加對更加自動化和全面的全球薪資解決方案的需求。 遠程工作潮流與全球勞動力的蓬勃發展,使得企業在全球范圍內,尋找最優秀的人才成為可能。然而,隨之而來的復雜薪資管理挑戰,也…

優雅地處理RabbitMQ中的消息丟失

目錄 一、異常處理 二、消息重試機制 三、錯誤日志記錄 四、死信隊列 五、監控與告警 優雅地處理RabbitMQ中的消息丟失對于構建可靠的消息系統至關重要。下面將介紹一些優雅處理消息丟失的方案,包括異常處理、重試機制、錯誤日志記錄、死信隊列和監控告警等。…

BUUCTF題目Web部分wp(持續更新)

關于SQL注入的一些通用辦法 可以訪問哪些表 如有權限,查詢當前用戶可以訪問的所有表 --Oracle查詢當前用戶可訪問的所有表 select owner, table_name from all_tables order by table_name; --MySQL查詢用戶可訪問的所有數據庫和表 select table_sche…

爬蟲017_urllib庫_get請求的quote方法_urlencode方法_---python工作筆記036

按行來看get請求方式 比如這個地址 上面這個地址復制粘貼過來以后 可以看到周杰倫變成了一堆的Unicode編碼了 所以這個時候我們看,我們說https這里,用了UA反爬,所以這里 我們構建一個自定義的Request對象,里面要包含Us

電腦mfc140u.dll丟失的怎么辦呢?這個方法親測可以解決

修復mfc140u.dll是我最近遇到的一個技術問題,雖然在解決過程中遇到了一些困難,但最終的成功修復讓我對技術的力量有了更深的體會。 首先,我想談談遇到問題時的困惑。當我嘗試運行一個應用程序時,突然彈出一個錯誤提示,…

Docker Dirtypipe(CVE-2022-0847)漏洞復現與分析容器逃逸

安裝環境 ./metarget cnv install cve-2022-0847 --verbose 原理 同臟牛,通過寫只讀內存,對映射的內存做篡改 EXP docker run --rm -it -v $(pwd):/exp --cap-addCAP_DAC_READ_SEARCH ubuntu如果提示 Unknown capability to add: "CAP_CAP_DAC_RE…

第五十二天

HTML5 ●MathML 是數學標記語言,是一種基于XML(標準通用標記語言的子集)的標準,用來在互聯網上書寫數學符號和公式的置標語言。 ●拖放 拖放是一種常見的特性,即抓取對象以后拖到另一個位置。 在 HTML5 中&#xf…

YAMLException: java.nio.charset.MalformedInputException: Input length = 1

springboot項目啟動的時候提示這個錯誤:YAMLException: java.nio.charset.MalformedInputException: Input length 1 根據異常信息提示,是YAML文件有問題。 原因是yml配置文件的編碼有問題。 需要修改項目的編碼格式,一般統一為UTF-8。 或…

分別用python和go語言來實現的風靡一時的2048 游戲,包含完整代碼

目錄 1、Python實現2、Go實現 2048 游戲實現主要包括以下幾個步驟: 創建一個棋盤,通常使用二維列表表示。實現棋子的移動規則,左移、右移、上移、下移。判斷游戲是否結束,即棋盤是否已滿或者無空位可移動。實現游戲界面的顯示。 …

【Android】ViewBinding+DataBinding+MVVM新手快速上手

為什么寫這篇博客 網上大部分博客,代碼量都比較大,把實際的業務都代入進去了 這篇博客的目的,就是為了講解基本原理和使用思路,然后給出一個最簡單的Demo 這里不講解具體用法,那樣篇幅會太長,直接看Demo…

TENNECO EDI 項目——X12與XML之間的轉換

近期為了幫助廣大用戶更好地使用 EDI 系統,我們根據以往的項目實施經驗,將成熟的 EDI 項目進行開源。用戶安裝好知行之橋EDI系統之后,只需要下載我們整理好的示例代碼,并放置在知行之橋指定的工作區中,即可開始使用。 …

YOLOv5入門實踐(3)— 手把手教你如何去劃分數據集

前言:Hello大家好,我是小哥談。數據集標注完成之后,下一步就是對這些數據集進行劃分了。面對繁雜的數據集,如果手動劃分的話,不僅麻煩而且不能保持隨機性。本節課就給大家介紹一種方法,即使用代碼去劃分數據…

Xcode升級導致關聯庫報錯

想辦法找到對應的庫 然后到 Build Phases -- LinkBinary With Libraries中點擊,選擇對應的framework即可,就像我工程的報錯 Undefined symbol: _OBJC_CLASS_$_ADClient _OBJC_CLASS_$_ASIdentifierManager 缺失的庫是AdSupport.framework 添加后再次編…