Я очень новичок в Matlab, хотя знаю несколько других языков программирования, поэтому, пожалуйста, простите меня, если это что-то простое. Я не смог найти ответы на это, либо на StackOverflow, либо в другом месте.Matlab imwrite() качество
производит фигуру, используя следующий код:
figure(6),imageplot(P); drawnow;
который выглядит следующим образом:
Я тогда сохранить это изображение на компьютер, используя следующие команды:
imwrite(P, 'images/plot.png');
И полученное изображение является крошечным, и отсутствует некоторая информация о цвете:
Если, однако, я использую функцию сохранения на открытой фигуре (изображение # 1) и сохраняю ее вручную, я получаю именно то, что хочу, это точное изображение, хранящееся на моем компьютере.
Как запрограммировать это? Я предположил, что imwrite() просто напишет изображение напрямую, но, видимо, я делаю что-то неправильно. Любой совет? Возможно, это как-то связано с командой imageplot? Кажется, я не могу так работать.
Обновление: основываясь на приведенных ниже комментариях, я начал использовать «imresize» с «ближайшей» опцией. Это правильно масштабирует изображение, но в результате изображение все еще выглядит более темным (и, следовательно, имеет меньше информации), чем если бы я нажал кнопку «Сохранить» на рисунке.
Изображение сохраняется из рисунка:
изображений с использованием "imresize" с "ближайшим" вариантом:
Как вы предлагаете мне объединить мой код с функцией print()? Как указано в моем вопросе, я могу просмотреть изображение, которое я хочу, используя imageplot (P). Использование print (P, '-dpng', 'filename.png') приводит к ошибке: «Ввод ручки должен быть скалярным, векторным или клеточным массивом векторов». Я также попытался использовать print (imageplot (P), '- dpng', 'filename.png'), пытаясь напечатать то, что я показываю, но это приводит к ошибке «Слишком много выходных аргументов». – Jake
Вам нужно использовать печать на фигурной ручке - после того, как вы построили матрицу P, 'gcf' вернет текущий фигурный дескриптор, как Martin J.H. использует. Вы также можете использовать 'f = figure; imageplot (Р); печать (е, ...); '. –
Там мы идем. Совершенство. Спасибо огромное! – Jake