How can I save high resolution image with original size and quality?

21 ビュー (過去 30 日間)
Ferit Akgul
Ferit Akgul 2018 年 2 月 18 日
編集済み: Ferit Akgul 2018 年 2 月 19 日
Hi,
I'm trying to save a high resolution image (trial.png) that I load into a figure and edit (modify some pixels).
The code is:
hread=imread([fname]);
[height,width,dim]=size(hread);
res = get(0,'screenpixelsperinch');
% for keeping original image size
set(gcf, 'PaperUnits', 'inches', 'PaperPosition', [0 0 width height]/res);
% for margin removal
horg = get(gca,'position')
set(gca,'position',[0 0 1 1],'units','normalized')
dirname = dir;
filename = fn;
print(gcf,'-dpng', '-noui',fullfile(dir,fn),['-r' num2str(res)])
When I save the image either using print or export_fig (export_fig_out.png), image resolution comes out the same however image looks very pixelated.
How do I make sure image is saved with the properties of the native image?
Thanks
  2 件のコメント
Rik
Rik 2018 年 2 月 19 日
Saving through a figure can be very tricky. Often the easiest solution is to not use the figure, but modify the image itself (as loaded into a matrix). It is then trivial to write out the modified image with the same resolution: it's the default for imwrite.
Ferit Akgul
Ferit Akgul 2018 年 2 月 19 日
Thanks Rik. I thought about it too, however, it used to work with this method before on an earlier version of Matlab. Now I'm using 2016a. I haven't changed the code in any way. Working with the figure is more practical since I'm doing edits using the GUI directly.

サインインしてコメントする。

採用された回答

Ferit Akgul
Ferit Akgul 2018 年 2 月 19 日
編集済み: Ferit Akgul 2018 年 2 月 19 日
Hello,
I believe I found a way. Based on Rik's and Image Analyst's answers I had to rewrite some portion of my code to use the following commands to get the job done directly on the image matrix:
-InsertMarker
-InsertShape
-InsertText
Thanks!

その他の回答 (1 件)

Image Analyst
Image Analyst 2018 年 2 月 19 日
Like Rik says, use imwrite() to save the original image rather than a .fig. You can always call imread() and put it into a new figure/axes if you want. I don't see how importing a pre-drawn figure would make it easier for you to do your edits in your GUI rather than reading an image directly into the axes control on your GUI window.
  1 件のコメント
Ferit Akgul
Ferit Akgul 2018 年 2 月 19 日
Hi Image Analyst,
Thanks a lot for the suggestion. The hard part comes in when I put a LOT OF edits (text, line, circle etc) on the imported figure and then save it. Attached's an example.
If there's an easy way to modify the image matrix to accommodate all the texts, lines etc I'd be happy to try this method as well.

サインインしてコメントする。

カテゴリ

Help Center および File ExchangeConvert Image Type についてさらに検索

Community Treasure Hunt

Find the treasures in MATLAB Central and discover how the community can help you!

Start Hunting!

Translated by