使用侦听器时查看哪个像素已更改的最快方法

Fastest way to see which pixel has changed when using a listener

我正在尝试使用 STEM 获取每个扫描像素的 EDS 光谱。 我正在使用 EDSStartAcquisition( 2048, 10,fexposure*2, 1) 命令和 我已将以下简单的侦听器对象附加到显示的一维频谱图像中:

string messagemap = "data_value_changed:MyImageAction"  
    Class MyListenerClass1
    {
    String event_desc;

    MyListenerClass1(Object self); //Result("\n");
    ~MyListenerClass1(Object self);// Result("\n");
    
        
        Void MyImageAction(Object self, Number e_fl, Image Img)
        {   
        ImageGetEventMap().DeconstructEventFlags( e_fl, event_desc )
        Result(GetTime(1)+": Image message : " + event_desc + " 0x" + Binary(e_fl) + "\n" ) 
        }
    }

ListenerID1 = EDSIm.ImageAddEventListener( Listener1, messagemap)

由于速度是这里的问题,我想尝试 EDS 采集的连续模式。但是我需要听取每个扫描像素的计数。以下主题 () 展示了如何监听图像的最后一个像素变化。但是,直接查看每个事件中一维频谱的哪一部分发生变化的最快方法是什么?无需遍历每一片...

提前致谢!

图像的 data_value_changed 被触发时 a) 图像储物柜(确保对内存的单一访问的对象)被释放,或 b)具体的update-call在代码中做了。

因此,当获得累积 EDS 光谱时,整个阵列被“锁定”,然后修改(在一个或多个位置),然后 'updated'。数组被修改的地方没有具体的信息。

因此,找出频谱发生变化的唯一方法是比较“之前”和“现在”的副本 - 这不是非常有效。