Я пытаюсь сохранить большое изображение (1641x6139) при полном разрешении с помощью MATLAB с осями. Сделать это без осей легко с помощью команды imwrite. Для построения изображения с осями, я пишу:Экспорт изображения с полным разрешением с осями в MATLAB
image(x,y,my_image);
Поскольку изображение является очень большим, MATLAB автоматически уменьшает разрешение изображения. Размер окна должен быть значительно больше экрана, чтобы отобразить изображение целиком с полным разрешением. Я попробовал несколько разных подходов к экспорту фигуры, и каждый из них сталкивается с одной и той же проблемой: изображение пикселируется с более грубым разрешением, чем исходное изображение. Проблема заключается не в том, что у нового изображения меньше пикселей; вместо этого соседним пикселям было присвоено одно и то же значение, создавая появление более крупной пикселизации.
Например, где Н является фигура ручку, я попытался:
set(H, 'PaperPosition', [0, 0, width , height ])
print -dpng -r500 my_filename
Увеличение ширины, высоты, или разрешение все имело эффект увеличения числа пикселов в изображении, но очевидно, пикселизация без изменений.
Я также пробовал использовать функцию export_fig
, которая, похоже, предназначена для такого типа проблем, требуя экспортировать цифры с содержащимися изображениями в их родном разрешении. Полученное изображение, похоже, имеет правильное количество пикселей, но, как и прежде, проблема заключается в том, что соседние пиксели имеют одинаковое значение, создавая появление более грубой пикселизации, отсутствующей на исходном изображении. Код я использовал:
export_fig(my_filename,'-a1','-native')
Вот несколько фотографий, показывающие примерно такой же масштаб изображения в части моего изображения:
первый является исходное изображение, а второй является изображение в результате от export_fig
. Второй выглядит неровным, хотя еще раз обратите внимание, что каждое изображение содержит примерно одинаковое количество фактических пикселей.
Любые советы/решения были бы высоко оценены! Эта проблема была намного более расстраивающей, чем я ожидал.
Есть ли какая-то особая причина, по которой вам нужно сначала нарисовать изображение на осях, а не напрямую записывать его в файл изображения? –
Кстати, export_fig -a1 -native, похоже, создает изображение с полным разрешением с осями на моей машине, по крайней мере с 2015a и rand (2000, 2000, 3) image –
Если вы знаете способ записи оси непосредственно к изображению это было бы хорошим решением. – Llouis