Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- function [] = Quantization(input_image, level_numbers, noise_before_processing)
- input_image_double = double(input_image); % исходное изображение
- [w, h] = size(input_image);
- for level_number = level_numbers
- q = 256 / level_number; % новый дискрет квантования
- noise = q * (rand(w, h) - 0.5); % массив шума
- if (noise_before_processing)
- input_image_double = input_image_double + noise;
- end
- output_image = zeros(w, h);
- indices = false(w, h);
- threshold = q/2;
- for level = 1:level_number - 1
- indices = (threshold <= input_image_double);
- output_image(indices) = round(level * q);
- threshold = threshold + q;
- end
- if (~noise_before_processing)
- output_image = output_image + noise;
- end
- figure;
- imshow(uint8(output_image));
- title(sprintf('Quantized image, L = %d', level_number));
- end
- end
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement