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

歡迎訪問 生活随笔!

生活随笔

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

循环神经网络

matlab55中值滤波,基于MATLAB的中值滤波算法实现

發布時間:2024/8/1 循环神经网络 35 豆豆
生活随笔 收集整理的這篇文章主要介紹了 matlab55中值滤波,基于MATLAB的中值滤波算法实现 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

在實時圖像采集中,不可避免的會引入噪聲,尤其是干擾噪聲和椒鹽噪聲,噪聲的存在嚴重影響邊緣檢測的效果,中值濾波是一種基于排序統計理論的非線性平滑計數,能有效平滑噪聲,且能有效保護圖像的邊緣信息,所以被廣泛用于數字圖像處理的邊緣提取,其基本原理是把數字圖像或數字序列中的一點的值用該點鄰域內所有的點排序后的中值來代替。

中值濾波對椒鹽噪聲有良好的濾除作用,特別是在濾除噪聲的同時,能夠保護信號的邊緣,使之不被模糊。這些優良特性是線性濾波方法所不具有的。而且,中值濾波的算法比較簡單,也易于用硬件實現。這篇我們先用MATLAB來實現中值濾波。

中值濾波方法是,對待處理的當前像素,選擇一個模板3x3、5x5或其他,這里選擇3x3矩陣,該模板為其鄰近的若干個像素組成,對模板的像素由小到大進行排序,再用模板的中值來替代原像素的值的方法。

排序算法示意圖

當我們使用3x3窗口后獲取領域中的9個像素,就需要對9個像素值進行排序,為了提高排序效率,排序算法思想如圖所示。

(1)對窗內的每行像素按降序排序,得到最大值、中間值和最小值。

(2)把三行的最小值即第三列相比較,取其中的最大值。

(3)把三行的最大值即第一列相比較,取其中的最小值。

(4)把三行的中間值即第二列相比較,再取一次中間值。

(5)把前面的到的三個值再做一次排序,獲得的中值即該窗口的中值。

sort排序函數

sort(A)若A可以使矩陣或行列向量,默認都是對A進行升序排列。

sort(A)是默認的升序,而sort(A,'descend')是降序排序。

sort(A)若A是矩陣,默認對A的各列進行升序排列

sort(A,dim)

dim=1時相當于sort(A)

dim=2時表示對矩陣A中的各行元素升序排列

sort(A, dim, 'descend’)則對矩陣的每行進行降序排列

MATLAB代碼實現

Median Filter

1?%RGB_YCbCr?2?clc;?3?clear?all;?4?close?all;?5??6?RGB_data?=?imread('lena.jpg');%?7??8?R_data?=????RGB_data(:,:,1);?9?G_data?=????RGB_data(:,:,2);10?B_data?=????RGB_data(:,:,3);11?12?%imshow(RGB_data);13?14?[ROW,COL,?DIM]?=?size(RGB_data);?

15?16?Y_data?=?zeros(ROW,COL);17?Cb_data?=?zeros(ROW,COL);18?Cr_data?=?zeros(ROW,COL);19?Gray_data?=?RGB_data;20?21?for?r?=?1:ROW

22?????for?c?=?1:COL23?????????Y_data(r,?c)?=?0.299*R_data(r,?c)?+?0.587*G_data(r,?c)?+?0.114*B_data(r,?c);24?????????Cb_data(r,?c)?=?-0.172*R_data(r,?c)?-?0.339*G_data(r,?c)?+?0.511*B_data(r,?c)?+?128;25?????????Cr_data(r,?c)?=?0.511*R_data(r,?c)?-?0.428*G_data(r,?c)?-?0.083*B_data(r,?c)?+?128;26?????end27?end

28?29?Gray_data(:,:,1)=Y_data;30?Gray_data(:,:,2)=Y_data;31?Gray_data(:,:,3)=Y_data;32?33?figure;34?imshow(Gray_data);35?36?%Median?Filter37?imgn?=?imnoise(Gray_data,'salt?&?pepper',0.02);

38?39?figure;40?imshow(imgn);41?42?43?for?r?=?2:ROW-144?????for?c?=?2:COL-145?????????median3x3?=[imgn(r-1,c-1)????imgn(r-1,c)?imgn(r-1,c+1)46?????????????????????imgn(r,c-1)??????imgn(r,c)??????imgn(r,c+1)47?????????????????????imgn(r+1,c-1)??????imgn(r+1,c)?imgn(r+1,c+1)];48?????????sort1?=?sort(median3x3,?2,?'descend');49?????????sort2?=?sort([sort1(1),?sort1(4),?sort1(7)],?'descend');50?????????sort3?=?sort([sort1(2),?sort1(5),?sort1(8)],?'descend');51?????????sort4?=?sort([sort1(3),?sort1(6),?sort1(9)],?'descend');52?????????mid_num?=?sort([sort2(3),?sort3(2),?sort4(1)],?'descend');53?????????Median_Img(r,c)?=?mid_num(2);54?????end55?end56?57?figure;58?imshow(Median_Img);

處理前后比較

Gray lena

加入椒鹽噪聲后的lena

對加入椒鹽噪聲后進行中值濾波的lena

可以看出,中值濾波對椒鹽噪聲的濾除效果真是非常的好。光看我處理后圖圖片可能看不出太明顯對比,有興趣的朋友可以自己嘗試下。這里MTALAB的排序部分基本是是按照排序算法一步步來的,完全符合FPGA實現的思路,所以說掌握算法的基礎原理和Verilog自己就可以嘗試用FPGA實現了。

這里需要強調的一下是這樣的濾波對圖像的邊緣沒有進行處理,這是因為我們在求取均值或中值時,生成的3x3矩陣,第一行的像素并沒有處理,同樣的圖像最外層邊緣的像素都沒有處理,不過這個對整體影響不大,所以后面再弄,下一篇來實現Sobel邊緣檢測。

原文出處:https://www.cnblogs.com/ninghechuan/p/9527915.html

總結

以上是生活随笔為你收集整理的matlab55中值滤波,基于MATLAB的中值滤波算法实现的全部內容,希望文章能夠幫你解決所遇到的問題。

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