簡體   English   中英

如何計算圖像中每個塊的標准偏差

[英]How can I calculate standard deviation for every block in an image

我正在嘗試使用文檔中的此示例來計算圖像中每個8x8像素塊的標准差,但在這種情況下我不能很好地使用它,因此任何人都可以幫助我為每個塊計算std。

 fun = @(block_struct) std2(block_struct.data) * ones(size(block_struct.data))
 I2 = blockproc('moon.tif',[8 8],fun);
 figure;
 imshow('moon.tif');
 figure;
 imshow(I2 , []);

我懷疑你想nlfilter (或colfilt'sliding'選項)。 使用blockproc ,它將圖像復制為不重疊的不同塊,並通過復制其計算的標准偏差值以塊形式寫出。 使用nlfilter它是一個滑動窗口,因此您可以獲得平滑的輸出圖像。

nlfilter的語法不同,因此可以這樣應用:

Iout = nlfilter(imread('moon.tif'),[8 8],@std2);

另外,您可以使用colfilt獲得更好的性能:

Iout = colfilt(double(imread('moon.tif')),[8 8],'sliding',@std);

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM