def __init__(self, parent=None): super(ImageListWindow, self).__init__(parent) try: from imagedisk import iQImageDisk id = iQImageDisk() names = id.titles() except ImportError: names = ['frappa pa405', 'micropoint 365', 'mosaic gfp'] # window title self.setWindowTitle("Select iQ Image") # view widget self.listView = QListView() self.sourceModel = QStandardItemModel(len(names), 1) i = 0 for name in names: item = QStandardItem(name) self.sourceModel.setItem(i, item) i += 1 self.proxyModel = QSortFilterProxyModel() self.proxyModel.setSourceModel(self.sourceModel) self.listView.setModel(self.proxyModel) # filter widgets self.filterLabel = QLabel("Find:") self.filterLineEdit = QLineEdit() # set layout grid = QGridLayout() grid.addWidget(self.filterLabel, 0, 0) grid.addWidget(self.filterLineEdit, 0, 1) grid.addWidget(self.listView, 1, 1) self.setLayout(grid) # set initial state self.filterLineEdit.setText("") # signals self.connect(self.filterLineEdit, SIGNAL("textChanged(const QString&)"), self.filterList)
# iQImage.shape seems to be the only way to get image width and height # attributes. Monkey patch with explicit width and height properties, inspired # by ImageJ getWidth and getHeight def _get_width(self): return self.shape[-2] def _get_height(self): return self.shape[-1] iQImage.getWidth = _get_width iQImage.getHeight = _get_height # Get image from user from imagedisk import iQImageDisk id = iQImageDisk() # FIXME: Use GUI to allow user to choose image if demo_mode: print 'Using demo image' if not id.has_image(title_demo_image): raise iQImageDiskError, 'Open the demo image from ./data ' + \ 'folder and rename it to' + title_demo_image im = iQImage(id, title_demo_image) # Make a copy of that image new_title = im.title + title_postfix if id.has_image(new_title): del id[new_title] im2 = im[:] # Generate ROI masks using PIL Image mask = zeros(im.shape, dtype=bool)