Skip to content

Instantly share code, notes, and snippets.

@adyprat
adyprat / exportROIv05_allChannels.groovy
Last active January 12, 2024 15:10
Export all channels as single channel tifs for a given ROI in QP v0.5
import qupath.lib.images.servers.ImageServers.*
import qupath.lib.io.PathIO
import qupath.fx.dialogs.*
import javax.imageio.ImageIO
// Get the current image
def imageData = getCurrentImageData()
def server = imageData.getServer()
// change this to 2 or more to get lower resolution
@adyprat
adyprat / exportROIv05.groovy
Last active January 3, 2024 14:48
Export annotation rendered ROI script with channel names and scale bar for QuPath v0.5.0
import qupath.lib.gui.images.servers.RenderedImageServer
import qupath.lib.gui.viewer.overlays.HierarchyOverlay
import qupath.lib.gui.viewer.Scalebar
import qupath.lib.gui.QuPathGUI
import qupath.lib.gui.viewer.OverlayOptions
import qupath.lib.regions.*
import ij.*
import java.awt.Color
import java.awt.image.BufferedImage
import qupath.lib.roi.RectangleROI
import qupath.lib.gui.images.servers.RenderedImageServer
import qupath.lib.gui.viewer.overlays.HierarchyOverlay
import qupath.lib.gui.viewer.Scalebar
import qupath.lib.gui.QuPathGUI
import qupath.lib.gui.viewer.OverlayOptions
import qupath.lib.regions.*
import ij.*
import java.awt.Color
import java.awt.image.BufferedImage
import qupath.lib.roi.RectangleROI
import qupath.lib.gui.images.servers.RenderedImageServer
import qupath.lib.gui.viewer.overlays.HierarchyOverlay
import qupath.lib.gui.viewer.Scalebar
import qupath.lib.gui.QuPathGUI
import qupath.lib.gui.viewer.OverlayOptions
import qupath.lib.regions.*
import ij.*
import java.awt.Color
import java.awt.image.BufferedImage
import qupath.lib.roi.RectangleROI
@adyprat
adyprat / importClassfromCsv.groovy
Created September 5, 2023 14:27
Import the 'Class' column from a csv file using the 'Object ID' map. Expects the 'Object ID's in csv match with the ones from the QuPath image.
import qupath.lib.scripting.QP
import qupath.lib.objects.classes.PathClass
import java.io.BufferedReader
import java.io.FileReader
import qupath.lib.io.*
def csvFilePath = Dialogs.promptForFile(null)
@adyprat
adyprat / exportAnnotationsAsTIF.groovy
Last active August 11, 2023 16:04
ExportQuPath Annotations As TIF
import qupath.lib.regions.*
import ij.*
import java.awt.*
import java.awt.image.BufferedImage
import javax.imageio.ImageIO
import java.awt.Color
// Set downsampling factor for saving image. Leave it at 1 for default resoluiton.
// downsample of n reduces image size by 1/n.
from geojson import Point, Feature, FeatureCollection, Polygon
import geojson
import numpy as np
import sys
import pandas as pd
from tqdm import tqdm
import cv2
from skimage.morphology import binary_dilation
from skimage import io
@adyprat
adyprat / exportROI_QPv042.groovy
Created March 6, 2023 15:06
QuPath export annotation ROI for version 0.4.0 and 0.4.2
import qupath.lib.gui.images.servers.RenderedImageServer
import qupath.lib.gui.viewer.overlays.HierarchyOverlay
import qupath.lib.gui.viewer.Scalebar
import qupath.lib.gui.QuPathGUI
import qupath.lib.gui.viewer.OverlayOptions
import qupath.lib.regions.*
import ij.*
import java.awt.Color
import java.awt.image.BufferedImage
import qupath.lib.roi.RectangleROI
@adyprat
adyprat / exportROI_QPv032.groovy
Created March 6, 2023 15:04
QuPath export Annotation ROI script for 0.3.2
import qupath.lib.gui.images.servers.RenderedImageServer
import qupath.lib.gui.viewer.overlays.HierarchyOverlay
import qupath.lib.gui.viewer.Scalebar
import qupath.lib.gui.QuPathGUI
import qupath.lib.gui.viewer.OverlayOptions
import qupath.lib.regions.*
import ij.*
import java.awt.Color
import java.awt.image.BufferedImage
import qupath.lib.roi.RectangleROI
@adyprat
adyprat / setClassFromMeasurements.groovy
Created February 24, 2023 17:14
Set class from existing measurements in QuPath
import qupath.lib.scripting.QP
import qupath.lib.objects.classes.PathClass
def pathClasses = getQuPath().getAvailablePathClasses()
print(pathClasses)
for (def detection : QP.getDetectionObjects()) {
def measurementList = detection.getMeasurementList()
// if cluster ID is 1, the name will appear as c1
// Change prefix variable to set a diff prefix
def preFix = 'c'