Попробуйте out = ones(size(ben), 'uint8');
ones()
по умолчанию создает массив значений типа double.Когда imshow()
получает массив значений типа double, он предполагает, что значения пикселей находятся в диапазоне от 0 до 1, и назначает белый цвет чему-либо большему, чем 1. Однако, если вы передадите массив от uint8
до imshow()
, он приметдиапазон от 0 до 255.
Вы также можете попробовать использовать imagesc();
вместо imshow()
, но вам может потребоваться сделать colormap gray
после подопечных, чтобы получить изображение в градациях серого.
Другая альтернатива - изменить масштаб изображения перед отображением:
imshow(out / max(out(:)));