《數字圖像處理》實驗報告五

一、實驗任務與要求

  • 實現一個自適應局部降噪濾波器;
  • 在一幅測試版圖像中加入運動模糊和高斯噪聲,產生一幅退化圖像,采用 deconvwnr 函數實現逆濾波及維納濾波。

?

二、實驗報告

(一)實現一個自適應局部降噪濾波器

1、自適應局部降噪濾波器函數

%自適應局部降噪濾波器函數 adpfilter
function g=adpfilter(f,nhood,noise_var)f=im2double(f);local_mean=filter2(ones(nhood),f)/prod(nhood); %局部均值 u=(1/mn)*∑f(x,y)  模板濾波,重疊區相*然后相加local_var=filter2(ones(nhood),f.^2)/prod(nhood)-local_mean.^2; %局部方差 σ^2=(1/mn)*∑f^2(x,y)-u^2g=f-local_mean; %g(x,y)=f(x,y)-uf=local_var-noise_var; %局部方差-噪聲方差f=max(f,0);g=local_mean+((g./max(local_var,noise_var)).* f);
end

2、處理代碼

f=imread('circuitboard.tif');
f=imnoise(f,'gaussian',0,0.01); %添加高斯噪聲
g=adpfilter(f,[3,3],1000);%自適應局部降噪濾波器
subplot(1,2,1);
imshow(f);title('原圖');
subplot(1,2,2);
imshow(g);title('自適應局部降噪');

3、處理效果

?

(二)在一幅測試版圖像中加入運動模糊和高斯噪聲,產生一幅退化圖像,采用 deconvwnr 函數實現逆濾波及維納濾波

1、給圖像加上運動模糊

f=imread('checkerboard-clean.tif');
f=im2double(f);
PSF=fspecial('motion',45,45); %運動濾波器 
gb=imfilter(f,PSF,'circular'); %運動模糊

2、繼續加上高斯噪聲

noise=imnoise(zeros(size(f)),'gaussian',0,0.001); %均值為0,方差為0.001的高斯噪聲
g=gb+noise; %運動模糊+高斯噪聲
subplot(4,2,1);
imshow(f);title('原圖');
subplot(4,2,2);
imshow(gb);title('運動模糊圖像');
subplot(4,2,3);
imshow(noise);title('高斯噪聲圖像');
subplot(4,2,4);
imshow(g);title('模糊圖像+噪聲圖像');

3、處理效果

? ? ?

? ? ?

4、實現逆濾波(忽略噪聲)?

default_nsr=0;
r1=deconvwnr(g,PSF,default_nsr);
subplot(4,2,5);
imshow(r1);title('逆濾波');

5、實現維納濾波(考慮噪聲)?

signal_var=var(f);
noise_var=var(noise);
estimate_nsr=noise_var/signal_var;
r2=deconvwnr(g,PSF,estimate_nsr);
subplot(4,2,6);
imshow(r2);title('考慮噪聲的維納濾波');

6、處理效果

? ? ??

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

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

相關文章

ajax請求接口不設置請求頭可以請求成功,但是設置請求頭之后就跨域,已解決

遇到這個問題我們不要著急找后端,先通過控制臺看看有沒有報錯,控制臺的列表是不會有這個紅色報錯的,所以我們要看下圖: 點擊這個紅色,然后在下面會出現一些信息 很明顯是這個請求頭timestamp的請求頭被屏蔽了&#xff…

Linux C語言程序中線程本地存儲變量的內存分配和使用

在多線程中,有一種叫線程本地存儲(Thread-Local Storage,TLS)的變量,它是每個線程有且只有一份自己的副本,對于這個線程來說,它是全局變量,可被所有函數共用;因為每個線程…

單機、集群和分布式

目錄 1.概述 2.單機服務器 單機版的服務器的性能,設計上的瓶頸? 3.集群 解決瓶頸1: 沒有解決瓶頸2: 沒有解決瓶頸3: 集群的優點? 集群的缺點? 4.分布式 分布式的優點? 分…

c++筆記提高效率-emplace函數

在C中,標準庫容器的emplace方法是一種高效的插入操作,用于在容器中直接構造元素。與insert和push方法相比,emplace方法可以避免不必要的復制或移動操作,因為它直接在容器內部構造元素。下面詳細介紹各容器的emplace方法及其用法。…

java常用類(2)

目錄 1.String概述 1.1 字符串的不變性 1.2 創建String對象兩種方式的區別 1.3 字符串中的構造方法 1.4 字符串判斷功能的方法 1.5 字符串獲取功能的方法 1.6 字符串轉換功能的方法 1.7 字符串替換功能的方法 2.StringBuffer 2.1 構造方法 2.2 插入方法 2.2.1 app…

a-table單元格指定合并以及表格雙擊編輯以及未填寫指定驗證功能

文章目錄 a-table單元格指定合并以及表格雙擊編輯以及未填寫指定驗證功能一、 a-table單元格指定合并1. a-table2. columns3. 圖例 二、a-table 表格雙擊編輯以及未填寫驗證1. a-table2. js3. 圖例 a-table單元格指定合并以及表格雙擊編輯以及未填寫指定驗證功能 一、 a-table…

從零開始精通Onvif之加密與認證

💡 如果想閱讀最新的文章,或者有技術問題需要交流和溝通,可搜索并關注微信公眾號“希望睿智”。 概述 安全是Onvif規范的核心部分,它涵蓋了加密和認證兩大領域。在Onvif標準下,安全措施主要包括:設備訪問控…

大模型AI技術實現語言規范練習

人工智能技術可以為語言規范練習提供多種有效的解決方案,幫助學習者更有效地掌握語言規范。以下是一些常見的應用場景。北京木奇移動技術有限公司,專業的軟件外包開發公司,歡迎交流合作。 1. 智能糾錯 利用自然語言處理技術,可以…

DC/AC電源模塊一種效率與可靠性兼備的能源轉換解決方案

DC/AC電源模塊都是一種效率與可靠性兼備的能源轉換解決方案 DC/AC電源模塊是一種能夠將直流電源(DC)轉換為交流電源(AC)的設備。它在現代電子設備中扮演著非常重要的角色,因為許多設備需要交流電源才能正常運行。無論…

樹形結構的勾選、取消勾選、刪除、清空已選、回顯、禁用

樹形結構的勾選、取消勾選、刪除、清空已選、回顯、禁用 基本頁面: 分為上傳文件和編輯的頁面 代碼實現要點: 上傳文件頁面: 點開選擇范圍彈窗,三個radio單選框都為可選狀態,默認顯示的是第一個單選框(按…

開源C++版AI畫圖大模型框架stable-diffusion.cpp開發使用初體驗

stable-diffusion.cpp是一個C編寫的輕量級開源類AIGC大模型框架,可以支持在消費級普通設備上本地部署運行大模型進行AI畫圖,以及作為依賴庫集成的到應用程序中提供類似于網頁版stable-diffusion的功能。 以下基于stable-diffusion.cpp的源碼利用C api來…

人工智能的未來:暢想智能新時代

人工智能正在改變我們的世界,它將帶我們走向何方? 著名神經科學家、Numenta 公司創始人杰夫?霍金斯 Jeff Hawkins 在其著作《人工智能的未來》中,描繪了一幅人工智能發展的光明圖景。他認為,人工智能將超越人類智能,…

理解Gobrs-Async相對于CompletableFuture的優勢

Gobrs-Async框架針對復雜應用場景下的異步任務編排,提供了一些傳統Future或CompletableFuture所不具備的特性和能力,以下是它能夠解決的問題和相對于CompletableFuture的優勢: 1. **全鏈路異常回調**: - Gobrs-Async允許為任務…

關于地圖點擊的操作

_this.map.dragging.disable(); //地圖拖拽 _this.map.doubleClickZoom.disable(); //禁止雙擊放大地圖 _this.map.scrollWheelZoom.disable(); //禁止鼠標滑輪滾動放大縮小地圖 _this.map.dragging.enable(); //e…

備份和鏡像TrinityCore

相比重新安裝,省去了編譯的過程,同時還能保留以前的人物、裝備等。 注意,若不想重新編譯安裝,則需要創建一樣的目錄、賬戶等,以減少不必要的麻煩。 首先備份數據: mysql備份和導入方法見:使用dump備份my…

視覺與味蕾的交響:紅酒與藝術的無界狂歡,震撼你的感官世界

在浩瀚的藝術海洋中,紅酒以其不同的魅力,成為了一種跨界整合的媒介。當雷盛紅酒與藝術相遇,它們共同呈現出一場特別的視覺盛宴,讓人沉醉在色彩與光影的交織中,感受紅酒與藝術的無界碰撞。 雷盛紅酒,宛如一件…

AI作畫Prompt不會寫?Amazon Bedrock Claude3.5來幫忙

最新上線的Claude3.5 Sonnet按照官方介紹的數據來看,在多方面超越了CPT-4o,是迄今為止最智能的模型。 而跟上一個版本相比,速度是Claude 3 Opus的兩倍,成本只有其五分之一。 Claude3.5 Sonnet不僅擅長解釋圖表、圖形或者從不完…

vue3中子組件調用父組件事件

在 Vue 3 中,子組件調用父組件的事件(或方法)的方式與 Vue 2 類似,但 Vue 3 引入了 Composition API,這可能會改變你組織代碼的方式。不過,基本的通信機制——通過自定義事件 ($emit) 通知父組件——仍然保…

總結:DataX

一、介紹 本文主要介紹DataX的安裝與使用。 二、安裝 安裝:DataX/userGuid.md at master alibaba/DataX GitHub 六、案例 實現從MySQL同步數據到HDFS,然后使用Hive進行聚合計算并將結果存儲回MySQL。 步驟2:使用DataX同步MySQL數據到H…

Day28:回溯法 491.遞增子序列 46.全排列 47.全排列 II 332.重新安排行程 51. N皇后 37. 解數獨

491. 非遞減子序列 給你一個整數數組 nums ,找出并返回所有該數組中不同的遞增子序列,遞增子序列中 至少有兩個元素 。你可以按 任意順序 返回答案。 數組中可能含有重復元素,如出現兩個整數相等,也可以視作遞增序列的一種特殊情…