2014-01-09 95 views
0

我正在使用MATLAB R2013在超聲波圖像中減少斑點噪聲。我設計了10個基本過濾器,並嘗試使用這些過濾器進行混合組合。當我運行我的程序時,我在不同的時間對同一個輸入圖像得到不同的結果,沒有其他輸入參數被改變。當我在上午1點17分執行程序時,我得到了PSNR = 74.5424,當我在上午1點21分執行同樣的程序時,我得到了PSNR = 75.04。爲什麼發生這種情況?MATLAB:在不同時間運行我的程序時獲得不同的結果

如果每次運行我的程序時都會出現不同的值,我怎麼能得出一個值呢?請幫忙。我附上了以下屏幕截圖,請參閱SNR,PSNR,Beta和散斑索引的值。

problem with my program

+7

一些示例代碼將有用。你使用任何隨機變量或mex文件?如果是mex文件,可能會有內存或指針問題。 – Marcin

+0

沒有mex代碼..我會給代碼..我在圖像預處理中添加散斑噪聲..使用imnoise命令。這是我的問題的原因嗎? –

回答

1

J = imnoise(I '散斑',v)的加乘性噪聲,將圖像I,使用等式J = I + N * I,其中n是均勻地分佈的隨機噪聲意味着0和方差v。v的默認值是0.04。

所以你使用隨機噪聲,因此你的結果是不確定的。 (可預測的RNG將是一個不好的...) 如果您需要確定性結果,可以事先計算噪聲並將其保存在mat文件中,並每次從文件中應用它。

按照MATLAB幫助,方程是J = I+n*I

其中n是均勻分佈的均值爲0,方差V的隨機噪聲。對於v該缺省值是0.04。

你可以計算這樣的N代表每個像素,並存儲爲heightxwidth雙矩陣--let的呼叫N.你那裝後,由評測應用噪音:

Img2 = Img .* (1+N); 
+0

如何事先計算噪音並將其保存在墊子文件中? –

相關問題