Issue Saving image with text overlay to png
    14 Ansichten (letzte 30 Tage)
  
       Ältere Kommentare anzeigen
    
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 Kommentar
  Will Reeves
      
 am 29 Okt. 2025 um 16:10
				
      Verschoben: Walter Roberson
      
      
 am 29 Okt. 2025 um 17:00
  
			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"?
Antworten (3)
  Walter Roberson
      
      
 am 16 Jul. 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.
0 Kommentare
  Jia-Sheng Hong
 am 8 Jan. 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.
0 Kommentare
  Will Reeves
      
 am 29 Okt. 2025 um 16:15
        
      Bearbeitet: Will Reeves
      
 am 29 Okt. 2025 um 16:16
  
      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.
0 Kommentare
Siehe auch
Kategorien
				Mehr zu Printing and Saving finden Sie in Help Center und File Exchange
			
	Produkte
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!



