[數字影象處理]模糊演算法用於影象增強
function [W1,W2,W3,W4,B] = Fuzzy_Knowledge_Filters(Intensity) for x = 1:1:3 for y = 1:1:3 if((Intensity(x,y) <= 0.2) &&(Intensity(x,y) >= -0.2)) Intensity(x,y) = exp(-20*Intensity(x,y).*Intensity(x,y)); else Intensity(x,y) = 0; end end end W1 = min(Intensity(1,2),Intensity(2,3)); W2 = min(Intensity(2,3),Intensity(3,2)); W3 = min(Intensity(3,2),Intensity(2,1)); W4 = min(Intensity(2,1),Intensity(1,2)); B = min(min(1-W1,1-W2),min(1-W3,1-W4)); end %% ---------Using Fuzzy for Spatial Filters--------------- close all; clear all; clc; f = imread('headCT_Vandy.tif'); f = mat2gray(f,[0 255]); [M,N]=size(f); f_Ex = zeros(M+2,N+2); for x = 1:1:M for y = 1:1:N f_Ex(x+1,y+1) = f(x,y); end end z = zeros (3,3); g = zeros (M+2,N+2); for x = 2:1:M+1 for y = 2:1:N+1 z(1,1) = f_Ex(x-1,y-1) - f_Ex(x,y); z(1,2) = f_Ex(x-1,y) - f_Ex(x,y); z(1,3) = f_Ex(x-1,y+1) - f_Ex(x,y); z(2,1) = f_Ex(x,y-1) - f_Ex(x,y); z(2,2) = f_Ex(x,y) - f_Ex(x,y); z(2,3) = f_Ex(x,y+1) - f_Ex(x,y); z(3,1) = f_Ex(x+1,y-1) - f_Ex(x,y); z(3,2) = f_Ex(x+1,y) - f_Ex(x,y); z(3,3) = f_Ex(x+1,y+1) - f_Ex(x,y); [W1,W2,W3,W4,B] = Fuzzy_Knowledge_Filters(z); V1 = 0.8 * W1 + 0.2; V2 = 0.8 * W2 + 0.2; V3 = 0.8 * W3 + 0.2; V4 = 0.8 * W4 + 0.2; V5 = 0.8 - (0.8 * B); g(x,y) = ((W1*V1) + (W2*V2) + (W3*V3) + (W4*V4) + (B*V5))/(W1+W2+W3+W4+B); end end figure(); subplot(1,2,1); imshow(f,[0 1]); xlabel('a).Original Image'); subplot(1,2,2); imshow(g,[0 1]); xlabel('b).Result of fuzzy'); %% figure(); subplot(1,2,1); x=-0.2:1/255:0.2; y=1/sqrt(2*pi)*exp(-20*x.*x); y = y/max(y); x = -1:1/255:1; y = [zeros(1,204) y zeros(1,204)]; plot(x,y); axis([-1,1,0,1]),grid; axis square; xlabel('a).Input memberchip functions for fuzzy'); subplot(1,2,2); x1 = [0,0.2,1];y1 = [0,0,1]; x2 = [0,0.8,1];y2 = [1,0,0]; plot(x1,y1,x2,y2); axis([0,1,0,1]),grid; axis square; legend('WH','BL'); xlabel('b).Output memberchip functions for fuzzy');
相關推薦
[數字影象處理]模糊演算法用於影象增強
function [W1,W2,W3,W4,B] = Fuzzy_Knowledge_Filters(Intensity) for x = 1:1:3 for y = 1:1:3 if((Intensity(x,y) <= 0.2) &&(Intensity(x,y
【數字影象處理系列四】影象資料集增強方式總結和實現
本系列python版本:python2.7.15 本系列opencv-python版本:opencv-python3.4.2.17 本系列使用的開發環境是jupyter notebook,是一個python的互動式開發環境,測試十分方便,並集成了vim操作,
【數字影象處理】七.MFC影象增強之影象普通平滑、高斯平滑、Laplacian、Sobel、Prewitt銳化詳解
程式碼如下:void CImageProcessingView::OnTxzqPtph2() { if(numPicture==0) { AfxMessageBox("載入圖片後才能影象增強(平滑)!",MB_OK,0); return; } AfxMessageBox("影象
數字影象處理3之在影象增強中使用直方圖統計
在影象增強中我們也可以使用直接從直方圖中獲得的統計引數。 1、平均值、方差的定義 令r表示在區間[0 , L-1]上代表離散灰度的離散隨機變數,並且令表示對應於的歸一化直方圖分量,我們可以把看做是灰度級出現的概率估計值。 (1)r的均值定義為: (2)r關於其均值的n
【數字影象處理系列三】影象增強:線性、 分段線性、 對數、 反對數、 冪律(伽馬)變換、直方圖均衡
本系列python版本:python3.5.4 本系列opencv-python版本:opencv-python3.4.2.17 本系列使用的開發環境是jupyter notebook,是一個python的互動式開發環境,測試十分方便,並集成了vim操作,安
影象處理OpenCV演算法04
8、邊緣檢測 大多數邊緣檢測運算元是基於方向差分卷積核求卷積的方法,通常有四種方式來衡量最後輸出的邊緣強度。(1)取對應位置絕對值的和: ,(2)取對應位置平方和的開方:,(3)取對應位置絕對值的最大值:,(4
影象處理OpenCV演算法03
6、閾值分割 閾值分割主要是根據灰度值資訊提取前景,所以對前景物體有較強對比度的影象的分割特別有用。在OpenCV中通過呼叫cv2.threshold()實現閾值分割。 全閾值分割:將灰度值大於t
影象處理OpenCV演算法02
5、影象濾波(平滑) 影象濾波(平滑),即在儘量保留影象細節特徵的條件下對目標影象的噪聲進行抑制,是影象預
影象處理OpenCV演算法01
OpenCV演算法 1、影象的基本操作讀取、顯示、儲存:通過呼叫OpenCV中的cv2.imread(),cv2.imshow(),cv2.write()分別實現。 &
影象去模糊演算法 循序漸進 附完整程式碼
關於影象模糊演算法的實現, 我相信大多數學習影象演算法的朋友都很熟悉。 例如常見的毛玻璃效果,高斯模糊等等。 而影象模糊最簡單的實現就是 在一定區域 對畫素做平均值計算。 術語描述,卷積。 1.認識卷積 而平均值計算可以,是一種常見的卷積計算,卷積核權重都為1。 OpenCV中與之對應的演算法是BoxBlur
影象處理經典演算法及OpenCV程式
基於opencv的use攝像頭視訊採集程式 準備工作:你得把opencv庫裝到電腦上,並把各種標頭檔案,原始檔,lib庫都連到vc上,然後設定一下系統環境變數
數字影象處理——用Java對影象做映象變換
水平映象變換,也就是把影象的畫素點按照垂直中線做調換。 程式碼實現也很簡單: import javax.imageio.ImageIO; import java.awt.image.Buffer
OPENCV影象處理提高(一)影象增強
在影象處理學習中會涉及到直方圖,直方圖很好地表現了影象的灰度資訊;同時我們注意到在暗影象中,直方圖的分量集中在灰度級的低端;亮影象的灰度值集中在直方圖灰度值的高階;低對比度的影象有較窄的直方圖,並集中於直方圖的中間部分;高對比度的影象中直方圖的分量覆蓋很寬的範圍
影象處理——分水嶺演算法
首先感謝以下兩位的博文幫助我的理解: (1)邁克老狼2012 https://www.cnblogs.com/mikewolf2002/p/3304118.html (2)-牧野- http://blog.csdn.net/dcrmg
【數字影象處理之四】影象的放大縮小旋轉
縮放放大: 修改紅框裡面的引數,2.0表示放大兩倍,0.5表示縮小兩倍。 旋轉: 修改紅框裡面的引數,表示旋轉多少度。逆時針。 旋轉編寫程式碼的時候可能會出現這樣的情況: 因為旋轉的時候,
數字影象處理之二維影象的傅立葉變換(1)
1.1、訊號變化越快,說明頻率越大,訊號變化越慢,說明頻率越小。這裡的頻率不一定是通常意義上的頻率,通常的頻率是指週期的倒數,我們把通常意義上的頻率叫時間頻率。廣義上的頻率是指變化的快慢,比如圖片來說,從這個畫素到另外一個畫素的灰度值差距比較大,那麼頻率就比較高
Opencv 分水嶺演算法用於影象分割
目標 • 使用分水嶺演算法基於掩模的影象分割 • 學習函式: cv2.watershed() 原理 任何一幅灰度影象都可以被看成拓撲平面,灰度值高的區域可以被看成是山峰,灰度值低的區域可以被看成是山谷。我們向每一個山谷中灌不同顏色的水,隨著水的位的升
影象處理——ORB演算法
本文主要由jason來自星星的博文https://www.cnblogs.com/zjiaxing/p/5616653.html整理而得,在此表示感謝! 一、構造尺度金字塔 金字塔共n層,與SIFT不同,每層僅有一副影象; 第s層的尺度為,Fato
影象處理基本演算法 車牌識別與定位
進行車牌識別和定位首先要了解車牌的特徵以及分類。 車牌主要包括以下幾種: 藍牌白字:普通小型車(其中包括政府機關專用號段、政法部門警車以外的行政用車)的牌照 黃牌黑字:大型車輛、摩托車、駕校教練車牌照 黑牌白字:涉外車輛牌照,式樣和藍牌基本相同 白牌:政法部門(公安、法院、檢察院、
影象處理-基本演算法之對數變換
對數變換實現了影象灰度擴充套件和壓縮的功能。它擴充套件低灰度值而壓縮高灰度值,讓影象的灰度分佈更加符合人的視覺特徵。 程式碼如下: [cpp] view plaincopyprint? /******