All functions in matlab work the same way, they never modify the input. Instead they return a copy of the input with the required modifications. Hence, when you call insertShape or insertText, your I is never changed. The inserted text or shape is only visible in the returned image. Thus you need to pass that returned image to the next insertXXX to insert both:
I = imread ('bonds_image.jpg');
I_with_circle = insertShape(I , 'circle', [527 626 20] , 'LineWidth' , 5 , 'Color' , 'red');
I_with_circle_and_text = insertText(I_with_circle, [532, 26], 'Bond 1 Draht 38', 'FontSize', 18, 'BoxColor', 'red', 'TextColor', 'black');
imshow(I_with_circle_and_text);
Best Answer