Ваша проблема в том, что ShowImage()
создает новый экран, который не совпадает с вашим img_disp
.
У вас есть два способа решения этой проблемы:
Либо Вы создаете imageDocument, а затем добавляете в него созданный imageDisplay.
Или вы сначала используйте ShowImage
, а затем получите изображение.
Я бы порекомендовал 2-е решение, если по какой-то причине вы не хотите отображать изображение в первое место. Таким образом, код будет:
# This is a PYTHON script to be run in DigitalMicrograph
import numpy as np
img = DM.CreateImage( np.arange(120000).reshape(300, 400).copy() )
img.ShowImage()
img.GetImageDisplay(0).AddNewComponent(2, 150, 100, 150, 300)
del img
Эквивалентный DM-скрипт будет:
// This is a DM-script to be run in DigitalMicrograph
image img := IntegerImage("Test",4,0,400,300) = irow
img.ShowImage()
img.ImageGetImageDisplay(0).ComponentAddNewComponent(2,150,100,150,300)