Issue Saving image with text overlay to png

14 visualizzazioni (ultimi 30 giorni)
Erick Oberstar
Erick Oberstar il 16 Lug 2019
Spostato: Walter Roberson il 29 Ott 2025 alle 17:00
I am having issues saving an image that has been displayed in a figure, with a couple markers plotted at specific coordinates and then text overlaid using the text function. I am trying to safe this off as a png via saveas(gcf,'filename.png'); and the figure exports but the overlaid text is missing. The title and the marker points I plotted show up but no text. Below is the figure.
Attached is the exported png using saveas
My code looks as follows:
figure; imshow(img,[]);
hold on;
plot(Stats(TestNum).Centroid(1),Stats(TestNum).Centroid(2),'b*');
set(gca, 'ActivePositionProperty', 'OuterPosition');
[filepath,name,ext] = fileparts(files(TestNum).name);
title({[];name;['Original Image With Centroid Marked']},'FontSize',FontSize);
text(20,500,{['Area = ',num2str(Stats(TestNum).Area.*pixel_scale^2,'%3.2f'),'mm^2'];...
['Eccentricity = ',num2str(Stats(TestNum).Eccentricity,'%3.2f')];...
['Orientation = ',num2str(Stats(TestNum).Orientation,'%3.2f'),char(176)];...
['Major Axis Length = ',num2str(Stats(TestNum).MajorAxisLength.*pixel_scale,'%3.2f'),'mm'];...
['Minor Axis Length = ',num2str(Stats(TestNum).MinorAxisLength.*pixel_scale,'%3.2f'),'mm']},...
'Color','white','FontSize',FontSize);
saveas(gcf,[pwd '\output\Test ',num2str(TestNum),'\TubeMidpointCrossSection - Test ',num2str(TestNum),'.png']);
  1 Commento
Will Reeves
Will Reeves circa 4 ore fa
Spostato: Walter Roberson circa 3 ore fa
I have the same problem. My issue is, like the above, the image I'm writing text on top of is mostly black - I need white text. Please can "saveas" actually save "WYSIWYG-like"?

Accedi per commentare.

Risposte (3)

Walter Roberson
Walter Roberson il 16 Lug 2019
I recommend you take a different approach. Instead of plotting on the image and text() on the image, use the Computer Vision insertText and insertShape routines to etch the information into an RGB array. After that is done, imwrite() the array.

Jia-Sheng Hong
Jia-Sheng Hong il 8 Gen 2020
The text do exist after you save it, however, it become black again. You can set the 'BackgroundColor' of the text to white instead of set the text to white, and it should work.

Will Reeves
Will Reeves 12 minuti fa
Modificato: Will Reeves 11 minuti fa
Sorry! I knew I once had the answer to this somewhere...
You need to put the line:
set(gcf, 'InvertHardCopy', 'off');
immediatly before issuing the "saveas" command.

Categorie

Scopri di più su Printing and Saving in Help Center e File Exchange

Prodotti

Community Treasure Hunt

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

Start Hunting!

Translated by