# Image Processing Min/Max filter

148 ビュー (過去 30 日間)
Marco Rossi 2016 年 4 月 28 日
コメント済み: Marco Rossi 2016 年 5 月 1 日
Hi,
i'm trying to execute a min/max filtering of an image but i'm meeting some problems. The filter consist in calculating the upper and lower envelope. In particularly for the upper envelop (Ue) i substituted for every pixel the max value in a 3X3-pixel neighborhood, and for the lower envelop (Le) the min value. Finally i calculated the filtered image
Im = (Im - Le) ./ (Ue -Le);
but the result is not correct in my opinion. I think the problem is in the the conversion of the format image because i don't well understand the difference between the commands "im2double" and "double".
This is the code
Im = im2double(Im);
[r c] = size(Im);
ImL = zeros(r,c);
ImU = zeros(r,c);
for i=2:r-1
for j=2:c-1
M = Im(i-1:i+1,j-1:j+1);
Min = min(M(:));
Max = max(M(:));
ImL(i,j) = Min;
ImU(i,j) = Max;
end
end
AirF = (Air-AirL)./(AirU-AirL);
AirF = im2uint8(AirF);
Thanks for help

サインインしてコメントする。

### 回答 (1 件)

Alex Taylor 2016 年 4 月 28 日
If you have the image processing toolbox, imerode and imdilate are the min/max filters you are looking for and are much faster than rolling these yourself.
##### 1 件のコメント表示非表示 なし
Marco Rossi 2016 年 5 月 1 日
Thanks for the answer; i didn't know the commands you mentioned, but i'd prefer to implement by myself

サインインしてコメントする。

### Community Treasure Hunt

Find the treasures in MATLAB Central and discover how the community can help you!

Start Hunting!

Translated by