1

我尝试编写一个代码,可以读取更改 linePlot/dataPlot 的上限值(Y 轴的最大值)。如下所示,它不起作用。看起来我们无法通过“number highlimit= imgdisp.linePlotImageDisplaySetContrastLimits(highlimit)”读取线图的上限值,如何从线图中读取该值?谢谢

number linelen=len(headerline)
        number i, nocommas=0
        for(i=0; i<linelen; i++)
            {
                string thischar=mid(headerline, i, 1)
                if(asc(thischar)==44) nocommas=nocommas+1 // found a comma
            }

        number xsize, ysize
        getsize(array, xsize, ysize)    
        image dataplot=realimage("", 4, xsize,1)
        showimage(dataplot)
        setname(dataplot, imgname)
        imagedisplay imgdisp=dataplot.imagegetimagedisplay(0)               
        number highlimit= imgdisp.linePlotImageDisplaySetContrastLimits(highlimit)
                                if( highlimit<50){imgdisp.linePlotImageDisplaySetContrastLimits( 0, 400)
imgdisp.LinePlotImageDisplaySetDoAutoSurvey( 0, 0 )} 
4

1 回答 1

1

这里有几件事:

1)

通常,每个“Set”命令也有一个相应的“Get”命令。因此,读取当前显示限制的脚本命令就是

linePlotImageDisplayGetContrastLimits()

2)

仅当关闭自动测量功能时,设置对比度限制才有效。在设置限制之前,您必须将其关闭。(如果您先设置限制,它们会立即被调查中的值替换,因此您看不到任何效果。)

3)

我不确定您真正想要设置/获取什么。你想获取数据的最大值还是显示限制?

最大值只是由 得到max( )

DisplayLimits 定义 y 轴上的范围,即它们设置您也可以在显示属性中指定的值,如下所示,它们与您在数据中的值无关:

在此处输入图像描述 显示限制设置为 0 - 500。(最大数据值 = 500)

在此处输入图像描述 显示限制设置为 0 - 1000。(最大数据值 = 500)

在此处输入图像描述 显示属性对话框。

下面是一些如何设置和读取显示限制的示例代码:

image spec := RealImage( "", 4, 500 ) 
spec = 20 + random() * icol
spec.ShowImage()

number maxV = max(spec)
imageDisplay LPID = spec.ImageGetImageDisplay(0)
LPID.LinePlotImageDisplaySetDoAutoSurvey( 0, 0 )        // switch survey off
LPID.LinePlotImageDisplaySetContrastLimits( 0, maxV*2 ) // Set the display

number lowL, highL
LPID.LinePlotImageDisplayGetContrastLimits( lowL, highL )
Result( "\n Maximum value in data:" + maxV )
Result( "\n Data display range:" + lowL + " to " + highL )
于 2016-02-14T08:37:16.013 回答