У меня есть изображение grayscale
, которое я преобразовал в binary
. Но, когда я не вижу binary
, То есть изображение с двумя значениями (например, 0,1), почему?Преобразует изображение в оттенках серого в двоичное, но при записи изображения я не получаю двоичное изображение
ответ
Согласно документу imwrite
«s:
If the input array is of class double, and the image is a grayscale
or RGB color image, IMWRITE assumes the dynamic range is [0,1] and
automatically scales the data by 255 before writing it to the file as
8-bit values.
Это может быть проблемой.
хорошо давайте посмотрим, как превратить изображение в BW и сохранить его, я надеюсь, что вы можете найти недостающие точки:
первого чтения изображения:
im = imread('img_name.jpg');
второго преобразования его в BW:
bw = im2bw(im, graythresh(im));
третий сохранить:
imwrite(bw, 'binary_image_name.jpg', 'jpg');
Я думаю, вы пропустили формат изображения во втором аргументе функции «imwrite» ('binary_image_name.jpg')
Я сделал, как вы упомянули, но не получил ожидаемого результата – Simplicity
ну, я снова проверил его с другим изображением, и он работает! поэтому я думаю, вы можете пропустить sth до конверсии! PLZ, объясните больше о том, что вы делаете? –
Есть ли какое-нибудь обходное решение, чтобы оно было написано как двоичное? – Simplicity
Из документа я бы догадался, что кастинг как «логичный» должен быть трюк. Проверьте http://www.mathworks.nl/help/matlab/ref/imwrite.html Обратите внимание, что с помощью 'im2bw' вы должны уже получить логический образ напрямую. –