Skip to content

Instantly share code, notes, and snippets.

@lacan
Created March 11, 2022 12:08
Show Gist options
  • Star 0 You must be signed in to star a gist
  • Fork 0 You must be signed in to fork a gist
  • Save lacan/d648271b8281131372825185b4ea4318 to your computer and use it in GitHub Desktop.
Save lacan/d648271b8281131372825185b4ea4318 to your computer and use it in GitHub Desktop.
[Export Rendered View] Exports the WYSIWYG version of a certain region as a jpeg with a metadata field appended to the image name. Works with Run for Project #qupath
// Export Rendered view of S1HL as open in QuPath with metadata tag in file name
// Author: Olivier Burri
// originally for Julie Meystre, LNMC
// Date: 2022 03 11
// NOTE: Make sure that all settings are as you want them on a currently open image (Channels, hidden Pathclasses, Annotation names, ...) before you start, as your current display and layer settings will be applied to all image if you use "Run for Project"
def downsample = 5
def regionClass = "S1HL"
def metadataName = "Distance to midline"
def value = getProjectEntryMetadataValue( metadataName )
def saveDir = new File( Projects.getBaseDirectory( getProject() ), "rendered" )
saveDir.mkdirs()
def server = getCurrentServer()
def viewer = getCurrentViewer()
def imageData = getCurrentImageData()
// Build a rendered server with the settings that are currently open (the viewer) but on another image (the imageData)
def renderedServer = new RenderedImageServer.Builder( imageData )
.renderer( viewer.getImageDisplay() )
.layers( viewer.getOverlayLayers() ).build()
// Build the request for the S1H1 Region
def roi = getAnnotationObjects().find{ it.getPathClass() == getPathClass( regionClass ) }.getROI()
def request = RegionRequest.createInstance( renderedServer.getPath(), downsample, roi )
// Finally write it
def imageName = getProjectEntry().getImageName()+"_"+value+"_rendered.jpg"
ImageWriterTools.writeImageRegion( renderedServer, request, new File( saveDir, imageName ).getAbsolutePath() );
import qupath.lib.gui.images.servers.*
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment