问题描述
我正在使用svs格式的图像。我正在使用openslide导入图像。
import openslide as ops
slide = ops.OpenSlide('TUPAC-TR-499.svs')
当我小规模导入时,我得到这张图片
level = 3
slide_low = slide.read_region((0,0),level,slide.level_dimensions[level]
当我放大零件时。我使用DeepZoomGenerator做到这一点。
from openslide.deepzoom import DeepZoomGenerator
data_gen = DeepZoomGenerator(slide2,tile_size=1022,overlap=1,limit_bounds=False)
tile_img14 = data_gen.get_tile(14,(0,1))
tile_img14
我们还可以调整DeepZoomGenerator的参数。
tile_img14 = data_gen.get_tile(13,1))
tile_img14
要选择特定区域,请使用以下命令:
def getROICoords(densestPatches,patchSize=512):
coords = []
for patch in densestPatches:
coords.append([patch.x*patchSize,patch.y*patchSize])
return coords
selected_coords = getROICoords(densestPatches,512)[4]
selected_region = slide.read_region((selected_coords[1],selected_coords[0]),(1024,1024))
我想在tkinter中使用鼠标和画布自动完成这项工作。
这是我的代码:
slide = ops.OpenSlide(self.path.get())
level_high = 1
level_low = 3
level = 3
slide_low = slide.read_region((0,slide.level_dimensions[level])
pi = ImageTk.PhotoImage(slide_low)
panelA = tk.Label(self.frame,image=pi)
panelA.image = pi
panelA.pack()
self.canvas.create_window((0,window=self.frame,anchor=tk.NW)
self.canvas.bind_all("<MouseWheel>",self.on_mousewheel)
self.canvas.config(scrollregion=self.canvas.bbox(tk.ALL))
self.canvas.grid(row=0,column=0,sticky="nswe")
self.scroll_x.grid(row=1,sticky="we")
self.scroll_y.grid(row=0,column=1,sticky="ns")
self.rowconfigure(0,weight=1)
self.columnconfigure(0,weight=1)
self.bind("<Configure>",self.resize)
self.update_idletasks()
def on_mousewheel(self,event):
shift = (event.state & 0x1) != 0
scroll = -1 if event.delta > 0 else 1
if shift:
self.canvas.xview_scroll(scroll,"units")
else:
self.canvas.yview_scroll(scroll,"units")
解决方法
暂无找到可以解决该程序问题的有效方法,小编努力寻找整理中!
如果你已经找到好的解决方法,欢迎将解决方案带上本链接一起发送给小编。
小编邮箱:dio#foxmail.com (将#修改为@)