Я собираюсь предположить, что ваш файл .bin
состоит из интенсивных интенсивностей изображения, которые хранятся в двоичном файле. Ваш вызов fread
просто прочитает содержимое файла в массиве, но вам нужно быть осторожным. По умолчанию значения будут считаться в виде 64-разрядных значений double
в MATLAB, поэтому произойдет то, что одно значение double
будет содержать пикселей изображения. Таким образом, вам нужно изменить способ считывания значений с помощью fread
. В частности, вам нужно сделать, это:
A = fread(file, 256*256, 'uint8=>uint8');
Это говорит, что вы собираетесь прочитать в общей сложности 256 х 256 пикселей изображения, где входной двоичный файл хранит данные в неподписанных 8-разрядных целых чисел. После этого данные считываются в MATLAB как один и тот же тип. Теперь вам нужно сделать следующее: reshape
массив, чтобы он стал 256 х 256 изображений.
Однако, поскольку fread
считывает данные в столбцам, каждая строка этого реконструированного изображения будут помещены в столбцы, и поэтому вам нужно транспонировать реконструированную матрицу, когда вы закончите. В частности:
A = reshape(A, 256, 256).';
Теперь A
бы свой 256 х 256 изображение, которое вы ищете. Теперь вы можете показать это изображение с помощью imshow(A);
.
Файл '.bin' очень неоднозначен. Это может быть что угодно. Знаете ли вы, что это сырое изображение? Этот файл содержит сами пиксели исходного изображения? Кроме того, ссылка на файл '.bin' поможет ответить на ваш вопрос. Если это двоичный файл, то «fread» будет считывать все содержимое файла в массив, тогда вам нужно ** изменить форму массива так, чтобы он стал изображением. Кроме того, поскольку ваше изображение имеет 8 бит на пиксель, попробуйте сделать это с помощью вашего вызова «fread»: «A = fread (файл, 256 * 256,« uint8 => uint8 »); '. Затем сделайте это, чтобы изменить изображение: 'A = reshape (A, 256, 256). ';' Теперь попробуйте 'imshow (A)' – rayryeng
Я не уверен, что файл является изображением или просто необработанными пикселями изображения, но код, который вы дали, работал. Спасибо! –
Бахаха, если это сработало, тогда данные являются необработанными пикселями изображения. Круто! Не возражаете, если я напишу ответ и вы его примете? – rayryeng