I am trying to save the image at an specific size.

18 views (last 30 days)
Here is the code I am doing:
[wt,f] = cwt(y,'amor',12000);
h = figure();
t = 0:numel(y)-1;
hp = pcolor(t,f,abs(wt));
hp.EdgeColor = 'none';
set(gca,'xtick',[],'ytick',[],'xticklabel',[],'yticklabel',[]);
exportgraphics(gca,'myplot.png','Resolution',300)
I want to save the image at height and width of 224. How do I modify the resulotion value?

Accepted Answer

Rik
Rik on 7 Jan 2021
The better way is to calculate the appropriate value.
However, you can also do this quick-n-dirty:
[wt,f] = cwt(y,'amor',12000);
h = figure();
t = 0:numel(y)-1;
hp = pcolor(t,f,abs(wt));
hp.EdgeColor = 'none';
set(gca,'xtick',[],'ytick',[],'xticklabel',[],'yticklabel',[]);
fn='myplot.png';R=300;
px_sz=[224 224];
exportgraphics(gca,fn,'Resolution',R);
im=imread(fn);
im=imresize(im,px_sz);
imwrite(im,fn);
Alternatively, you could also determine with what value you need to scale R to get your intended size in pixels. Note that this does not check if your image is square, so it may stretch your image.
  5 Comments
Atik Faysal
Atik Faysal on 8 Jan 2021
I did not know that. Thank you for the info. However, I can not use imshow properly in my code. Would you care to show me how to do it?
[wt,f] = cwt(y,'amor',12000);
h = figure();
t = 0:numel(y)-1;
hp = pcolor(t,f,abs(wt));
hp.EdgeColor = 'none';
set(gca,'xtick',[],'ytick',[],'xticklabel',[],'yticklabel',[]);
fn='myplot.png';R=300;
px_sz=[224 224];
exportgraphics(gca,fn,'Resolution',R);
im=imread(fn);
im=imresize(im,px_sz);
imwrite(im,fn);
Image Analyst
Image Analyst on 8 Jan 2021
imshow() takes an image so not sure what your image is - maybe f or wt. I don't have the Wavelet Toolbox so I can't run your code.

Sign in to comment.

More Answers (0)

Categories

Find more on Read, Write, and Modify Image in Help Center and File Exchange

Tags

Products

Community Treasure Hunt

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

Start Hunting!