亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频

? 歡迎來到蟲蟲下載站! | ?? 資源下載 ?? 資源專輯 ?? 關(guān)于我們
? 蟲蟲下載站

?? vtktkimageviewerwidget.py

?? a very goog book
?? PY
字號(hào):
"""A vtkTkImageViewerWidget for python, which is based on thevtkTkImageWindowWidget.Specify double=1 to get a double-buffered window.Created by David Gobbi, Nov 1999"""import Tkinterfrom Tkinter import *import math, os, sysfrom vtkpython import *from vtkLoadPythonTkWidgets import vtkLoadPythonTkWidgetsclass vtkTkImageViewerWidget(Tkinter.Widget):    """    A vtkTkImageViewerWidget for Python.    Use GetImageViewer() to get the vtkImageViewer.    Create with the keyword double=1 in order to generate a    double-buffered viewer.        Create with the keyword focus_on_enter=1 to enable    focus-follows-mouse.  The default is for a click-to-focus mode.        """    def __init__(self, master, cnf={}, **kw):        """        Constructor.        Keyword arguments:          iv -- Use passed image viewer instead of creating a new one.          double -- If True, generate a double-buffered viewer.          Defaults to False.          focus_on_enter -- If True, use a focus-follows-mouse mode.          Defaults to False where the widget will use a click-to-focus          mode.        """        # load the necessary extensions into tk        vtkLoadPythonTkWidgets(master.tk)        try: # use specified vtkImageViewer            imageViewer = kw['iv']        except KeyError: # or create one if none specified            imageViewer = vtkImageViewer()        doubleBuffer = 0        try:            if kw['double']:                doubleBuffer = 1            del kw['double']        except:            pass         # check if focus should follow mouse        if kw.get('focus_on_enter'):            self._FocusOnEnter = 1            del kw['focus_on_enter']        else:            self._FocusOnEnter = 0        kw['iv'] = imageViewer.GetAddressAsString("vtkImageViewer")        Tkinter.Widget.__init__(self, master, 'vtkTkImageViewerWidget',                                cnf, kw)        if doubleBuffer:            imageViewer.GetRenderWindow().DoubleBufferOn()        self.BindTkImageViewer()    def __getattr__(self,attr):        # because the tk part of vtkTkImageViewerWidget must have        # the only remaining reference to the ImageViewer when        # it is destroyed, we can't actually store the ImageViewer        # as an attribute but instead have to get it from the tk-side        if attr == '_ImageViewer':            addr = self.tk.call(self._w, 'GetImageViewer')[5:]            return vtkImageViewer('_%s_vtkImageViewer_p' % addr)        raise AttributeError, self.__class__.__name__ + \              " has no attribute named " + attr    def GetImageViewer(self):        return self._ImageViewer    def Render(self):        self._ImageViewer.Render()    def BindTkImageViewer(self):        imager = self._ImageViewer.GetRenderer()                # stuff for window level text.        mapper = vtkTextMapper()        mapper.SetInput("none")        t_prop = mapper.GetTextProperty()        t_prop.SetFontFamilyToTimes()        t_prop.SetFontSize(18)        t_prop.BoldOn()        t_prop.ShadowOn()                self._LevelMapper = mapper        actor = vtkActor2D()        actor.SetMapper(mapper)        actor.SetLayerNumber(1)        actor.GetPositionCoordinate().SetValue(4,22)        actor.GetProperty().SetColor(1,1,0.5)        actor.SetVisibility(0)        imager.AddActor2D(actor)        self._LevelActor = actor                        mapper = vtkTextMapper()        mapper.SetInput("none")        t_prop = mapper.GetTextProperty()        t_prop.SetFontFamilyToTimes()        t_prop.SetFontSize(18)        t_prop.BoldOn()        t_prop.ShadowOn()                self._WindowMapper = mapper        actor = vtkActor2D()        actor.SetMapper(mapper)        actor.SetLayerNumber(1)        actor.GetPositionCoordinate().SetValue(4,4)        actor.GetProperty().SetColor(1,1,0.5)        actor.SetVisibility(0)        imager.AddActor2D(actor)        self._WindowActor = actor        self._LastX = 0        self._LastY = 0        self._OldFocus = 0        self._InExpose = 0                # bindings        # window level        self.bind("<ButtonPress-1>",                  lambda e,s=self: s.StartWindowLevelInteraction(e.x,e.y))        self.bind("<B1-Motion>",                  lambda e,s=self: s.UpdateWindowLevelInteraction(e.x,e.y))        self.bind("<ButtonRelease-1>",                  lambda e,s=self: s.EndWindowLevelInteraction())                 # Get the value        self.bind("<ButtonPress-3>",                  lambda e,s=self: s.StartQueryInteraction(e.x,e.y))        self.bind("<B3-Motion>",                  lambda e,s=self: s.UpdateQueryInteraction(e.x,e.y))        self.bind("<ButtonRelease-3>",                  lambda e,s=self: s.EndQueryInteraction())         self.bind("<Expose>",                  lambda e,s=self: s.ExposeTkImageViewer())        self.bind("<Enter>",                  lambda e,s=self: s.EnterTkViewer())        self.bind("<Leave>",                  lambda e,s=self: s.LeaveTkViewer())        self.bind("<KeyPress-e>",                  lambda e,s=self: s.quit())        self.bind("<KeyPress-r>",                  lambda e,s=self: s.ResetTkImageViewer())    def GetImageViewer(self):        return self._ImageViewer    def Render(self):        self._ImageViewer.Render()    def _GrabFocus(self):        self._OldFocus=self.focus_get()        self.focus()            def EnterTkViewer(self):        if self._FocusOnEnter:            self._GrabFocus()    def LeaveTkViewer(self):        if self._FocusOnEnter and (self._OldFocus != None):            self._OldFocus.focus()    def ExposeTkImageViewer(self):        if (self._InExpose == 0):            self._InExpose = 1            self.update()            self._ImageViewer.Render()            self._InExpose = 0    def StartWindowLevelInteraction(self,x,y):        if not self._FocusOnEnter:            self._GrabFocus()        viewer = self._ImageViewer        self._LastX = x        self._LastY = y        self._Window = float(viewer.GetColorWindow())        self._Level = float(viewer.GetColorLevel())        # make the window level text visible        self._LevelActor.SetVisibility(1)        self._WindowActor.SetVisibility(1)        self.UpdateWindowLevelInteraction(x,y)    def EndWindowLevelInteraction(self):        # make the window level text invisible        self._LevelActor.SetVisibility(0)        self._WindowActor.SetVisibility(0)        self.Render()    def UpdateWindowLevelInteraction(self,x,y):        # compute normalized delta        dx = 4.0*(x - self._LastX)/self.winfo_width()*self._Window        dy = 4.0*(self._LastY - y)/self.winfo_height()*self._Level        # abs so that direction does not flip        if (self._Window < 0.0):            dx = -dx        if (self._Level < 0.0):            dy = -dy        # compute new window level        window = self._Window + dx        if (window < 0.0):            level = self._Level + dy        else:            level = self._Level - dy        viewer = self._ImageViewer        viewer.SetColorWindow(window)        viewer.SetColorLevel(level)        self._WindowMapper.SetInput("Window: %g" % window)        self._LevelMapper.SetInput("Level: %g" % level)                self.Render()    def ResetTkImageViewer(self):        # Reset: Set window level to show all values        viewer = self._ImageViewer        input = viewer.GetInput()        if (input == None):            return        # Get the extent in viewer        z = viewer.GetZSlice()        input.SetUpdateExtent(-99999,99999,-99999,99999,z,z)        input.Update()        (low,high) = input.GetScalarRange()           viewer.SetColorWindow(high - low)        viewer.SetColorLevel((high + low) * 0.5)        self.Render()       def StartQueryInteraction(self,x,y):        if not self._FocusOnEnter:            self._GrabFocus()        # Query PixleValue stuff        self._WindowActor.SetVisibility(1)        self.UpdateQueryInteraction(x,y)    def EndQueryInteraction(self):        self._WindowActor.SetVisibility(0)        self.Render()    def UpdateQueryInteraction(self,x,y):        viewer = self._ImageViewer        input = viewer.GetInput()        z = viewer.GetZSlice()        # y is flipped upside down        y = self.winfo_height() - y        # make sure point is in the whole extent of the image.        (xMin,xMax,yMin,yMax,zMin,zMax) = input.GetWholeExtent()        if (x < xMin or x > xMax or y < yMin or \            y > yMax or z < zMin or z > zMax):            return        input.SetUpdateExtent(x,x,y,y,z,z)        input.Update()        numComps = input.GetNumberOfScalarComponents()        text = ""        for i in xrange(numComps):            val = input.GetScalarComponentAsFloat(x,y,z,i)            text = "%s  %.1f" % (text,val)          self._WindowMapper.SetInput("(%d, %d): %s" % (x,y,text))                self.Render()#-----------------------------------------------------------------------------# an example of how to use this widgetif __name__ == "__main__":    canvas = vtkImageCanvasSource2D()    canvas.SetNumberOfScalarComponents(3)    canvas.SetScalarType(3)    canvas.SetExtent(0,511,0,511,0,0)    canvas.SetDrawColor(100,100,0)    canvas.FillBox(0,511,0,511)    canvas.SetDrawColor(200,0,200)    canvas.FillBox(32,511,100,500)    canvas.SetDrawColor(100,0,0)    canvas.FillTube(550,20,30,400,5)    canvas.SetDrawColor(255,255,255)    canvas.DrawSegment3D(10,20,0,90,510,0)    canvas.SetDrawColor(200,50,50)    canvas.DrawSegment3D(510,90,0,10,20,0)    # Check segment clipping    canvas.SetDrawColor(0,200,0)    canvas.DrawSegment(-10,30,30,-10)    canvas.DrawSegment(-10,481,30,521)    canvas.DrawSegment(481,-10,521,30)    canvas.DrawSegment(481,521,521,481)    # Check Filling a triangle    canvas.SetDrawColor(20,200,200)    canvas.FillTriangle(-100,100,190,150,40,300)    # Check drawing a circle    canvas.SetDrawColor(250,250,10)    canvas.DrawCircle(350,350,200.0)    # Check drawing a point    canvas.SetDrawColor(250,250,250)    canvas.DrawPoint(350,350)    canvas.DrawPoint(350,550)    # Test filling functionality    canvas.SetDrawColor(55,0,0)    canvas.DrawCircle(450,350,80.0)    canvas.SetDrawColor(100,255,100)    canvas.FillPixel(450,350)    # Create the GUI: two renderer widgets and a quit button    frame = Frame()    widget = vtkTkImageViewerWidget(frame,width=512,height=512,double=1)    viewer = widget.GetImageViewer()    viewer.SetInput(canvas.GetOutput())    viewer.SetColorWindow(256)    viewer.SetColorLevel(127.5)    button = Button(frame,text="Quit",command=frame.quit)    widget.pack(side='top',padx=3,pady=3,fill='both',expand='t')    frame.pack(fill='both',expand='t')    button.pack(fill='x')    frame.mainloop()

?? 快捷鍵說明

復(fù)制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號(hào) Ctrl + =
減小字號(hào) Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
欧美日韩中字一区| 欧美成人国产一区二区| 国产一区二区三区精品视频| 一区二区三区日韩精品| 亚洲欧美日韩在线不卡| 亚洲美女免费视频| 亚洲免费观看高清完整版在线观看熊| 国产精品夫妻自拍| 亚洲欧洲精品一区二区精品久久久| 中文av一区二区| 中文字幕视频一区| 亚洲精品视频在线| 亚洲成a人片在线不卡一二三区 | 香港成人在线视频| 亚洲成a人v欧美综合天堂| 三级在线观看一区二区| 精品一区二区三区免费视频| 国产精品小仙女| 色一区在线观看| 欧美精品少妇一区二区三区| 精品国产乱码久久久久久老虎| 久久精品男人天堂av| 亚洲欧美一区二区在线观看| 亚洲一区二区欧美日韩| 精品综合久久久久久8888| 成人18视频在线播放| 欧美午夜电影在线播放| 2020国产成人综合网| 亚洲免费av网站| 麻豆成人综合网| 97久久超碰精品国产| 在线综合+亚洲+欧美中文字幕| 久久久国产一区二区三区四区小说| 亚洲欧洲av在线| 久久精品国产久精国产爱| 国产高清不卡一区二区| 欧美色综合网站| 欧美国产在线观看| 午夜a成v人精品| 99视频一区二区| 欧美大片日本大片免费观看| 一区二区三区中文在线| 国产一二精品视频| 欧美日韩视频专区在线播放| 国产精品久久看| 美腿丝袜亚洲色图| 91国产福利在线| 欧美激情中文不卡| 免费av成人在线| 欧美日韩免费高清一区色橹橹| 亚洲精品一区二区三区蜜桃下载 | 色综合天天天天做夜夜夜夜做| 精品国产成人系列| 亚洲成人精品在线观看| 99久久久久免费精品国产| 日韩精品一区二区三区中文精品| 亚洲电影你懂得| 在线亚洲精品福利网址导航| 中文字幕日韩av资源站| 丁香天五香天堂综合| 欧美成人精品3d动漫h| 日韩精品每日更新| 欧美片网站yy| 亚洲影视在线播放| 不卡免费追剧大全电视剧网站| 国产亚洲成aⅴ人片在线观看 | 日本电影欧美片| 国产精品三级视频| 国产精品一区二区无线| 久久亚洲欧美国产精品乐播| 精品88久久久久88久久久| 国产在线观看一区二区| 久久精品噜噜噜成人av农村| 欧美亚洲动漫另类| 亚洲激情第一区| 色婷婷综合久久久中文一区二区| 日本一区二区三区四区| 丁香一区二区三区| 亚洲国产精品激情在线观看| 成人禁用看黄a在线| 亚洲国产精品成人久久综合一区| 盗摄精品av一区二区三区| 久久亚洲一级片| 成人av在线影院| 亚洲码国产岛国毛片在线| 欧美日韩在线播放一区| 人人超碰91尤物精品国产| 精品国产一区二区三区忘忧草| 激情欧美一区二区| 中文字幕一区二区三区在线播放| 91久久一区二区| 日韩成人午夜电影| 久久久久国产精品麻豆ai换脸| 风间由美一区二区av101| 国产精品第一页第二页第三页| 91女神在线视频| 日韩激情在线观看| 久久网站最新地址| 色女孩综合影院| 免费日本视频一区| 中文字幕制服丝袜成人av | 欧美在线观看视频在线| 日韩 欧美一区二区三区| 久久网站最新地址| 亚洲精品视频自拍| 蜜桃免费网站一区二区三区| 欧美高清激情brazzers| 国产一区二区三区免费观看| 亚洲欧美综合在线精品| 欧美日韩一区二区不卡| 国产一区二区电影| 亚洲一区二区三区美女| 久久在线免费观看| 日本精品视频一区二区三区| 精品夜夜嗨av一区二区三区| 国产精品久久久久久久久免费樱桃| 欧美性受极品xxxx喷水| 久久成人麻豆午夜电影| 亚洲欧美另类在线| 亚洲精品在线三区| 欧美日韩一级黄| 成人app网站| 激情小说欧美图片| 亚洲一卡二卡三卡四卡无卡久久| 26uuu国产日韩综合| 欧美唯美清纯偷拍| 中文字幕不卡一区| 国产精品99久久久久| 欧美成人一区二区三区在线观看| 717成人午夜免费福利电影| 制服丝袜成人动漫| 麻豆传媒一区二区三区| 一区二区三区四区国产精品| 久久久精品国产免大香伊| 91精品国产91久久久久久最新毛片| 不卡av在线网| 韩国成人精品a∨在线观看| 亚洲成人免费视频| 亚洲免费资源在线播放| 国产精品福利一区二区三区| 国产欧美日韩不卡| 精品国产污污免费网站入口| 欧美精品1区2区3区| 欧美性大战xxxxx久久久| 成人免费视频网站在线观看| 国产91丝袜在线播放九色| 久久 天天综合| 美女视频免费一区| 天堂av在线一区| 国产欧美日韩亚州综合| 欧美手机在线视频| 亚洲视频一区二区在线| 不卡在线观看av| 亚洲第一电影网| 亚洲免费观看高清完整| 亚洲色图欧美激情| 中文字幕综合网| 亚洲最新在线观看| 亚洲六月丁香色婷婷综合久久| 中文字幕一区二区三区四区不卡| 国产精品久久久久影视| 最新欧美精品一区二区三区| 樱桃国产成人精品视频| 亚洲成人在线网站| 久久www免费人成看片高清| 久久国产剧场电影| 大桥未久av一区二区三区中文| 99久久久国产精品免费蜜臀| 色综合久久久网| 欧美色男人天堂| 精品三级在线看| 国产精品网站在线观看| 久久精品人人做人人爽97| 国产精品亲子伦对白| 亚洲国产日韩一级| 中文字幕精品一区| 中文乱码免费一区二区| 一区二区三区中文免费| 午夜精品aaa| 国产一区二区三区在线看麻豆| jlzzjlzz欧美大全| 欧美剧情片在线观看| 久久久国产精品不卡| 亚洲精品高清在线| 九色综合狠狠综合久久| 成人av网站在线| 欧美精品 日韩| 中文子幕无线码一区tr| 舔着乳尖日韩一区| 成人性视频免费网站| 欧美曰成人黄网| 久久免费电影网| 亚洲一区二区三区三| 国产伦精品一区二区三区免费| 91丨porny丨首页| 精品久久久久久无| 亚洲精品日韩综合观看成人91| 美女视频黄a大片欧美| 欧美体内she精视频| 不卡av电影在线播放|