我有一個尺寸爲180x220的圖像,其中包含該區域中的一些噪聲,例如(145:180,1:65)。如何從Matlab中的特殊區域去除噪聲
我的問題是如何消除這個區域的噪音,而不會影響使用Matlab的圖像的其他部分。
非常感謝。
編輯:我想刪除的區域中的噪聲(1:146,1:25)和(1:15,25,174)從下面的圖像:
我有一個尺寸爲180x220的圖像,其中包含該區域中的一些噪聲,例如(145:180,1:65)。如何從Matlab中的特殊區域去除噪聲
我的問題是如何消除這個區域的噪音,而不會影響使用Matlab的圖像的其他部分。
非常感謝。
編輯:我想刪除的區域中的噪聲(1:146,1:25)和(1:15,25,174)從下面的圖像:
一般來說,本會去像
% filter image in-place
img(145:180, 1:65) = medfilt2(img(145:180, 1:65));
注意,大多數過濾器需要的感興趣區域的一些背景做一個適當的插值/平均/等等,所以你可能要採取這種做法:
% Note: increase ROI by 10 on each side
offset = 10;
img_tmp = img(145-offset : 180+offset, 1 : 65+offset);
% apply filter
img_tmp = medfilt2(img_tmp, [additional parameters]);
% put filtered image back in its proper place
img(145:180, 1:65) = img_tmp(offset:end-offset+1, 1:end-offset+1);
謝謝Rody,我的圖像是深度圖,它只包含一層。 我附上了一個示例圖像。 –
@GambaOsaca:那麼在這種情況下,看看我最後的編輯:) –
謝謝Rody,它的工作 –
img = double(imread('img.jpg'));
h = fspecial('gaussian', hsize, sigma); % decide how to filter the image
img_filt = imfilter(img, h, 'replicate');
現在,使用過濾的圖像僅在噪聲區域
img(145:180,1:65,:) = img_filt(145:180,1:65,:);
編輯:你貼我猜你想簡單的圖像後,由香草色替換降噪的區域? 如果是這樣,然後執行以下操作(假設灰度圖像):
med_pixel = median(img(:)); % detect the dominant color
img(1:146,1:25) = med_pixel;
img(1:15,25,174) = med_pixel;
...等等
+1,雖然'img(145:180,1:65,:) = imfilter(img(145:180,1 :65,:),h,'replicate');'對資源的要求要低得多。 –
@RodyOldenhuis,我同意。但是,這可以允許使用非常大的(LF)濾波器來使用實際圖像來清除噪聲。我想這取決於速度/質量要求。 – Serg
確實如此,它取決於過濾器的類型和大小,因此也取決於ROI的環境。 –
很難不知道什麼類型的噪聲,並沒有看到的圖像來回答。 – carlosdc
謝謝,我添加了一個圖像,並指定了我想要去除噪音的確切區域。 –
@GambaOsaca:嗯,它看起來並不像噪音,更像是一些銳化過濾器的輸出或某些這樣的......你可以自由地說出這是什麼樣的圖像? –