Short Description
This script allow you to export all pixels values which are contained in ROI(s) into a excel file. Process is done so channel are separated in different sheet and pixels are grouped per ROI.Versions
-
Version 2 • Released on: 2017-11-21 15:54:15DownloadDescription:
Fixed a small bug
12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667686970717273747576777879808182838485868788899091importClass(Packages.icy.gui.dialog.MessageDialog)importClass(Packages.icy.gui.frame.progress.ProgressFrame)importClass(Packages.icy.file.FileUtil)importClass(Packages.plugins.tprovoost.scripteditor.uitools.filedialogs.FileDialog)importClass(Packages.icy.util.XLSUtil)importClass(Packages.icy.util.XMLUtil)importClass(Packages.icy.util.ShapeUtil)importClass(Packages.icy.roi.ROIUtil)importClass(Packages.icy.sequence.SequenceDataIterator)// get active sequences = getSequence()if (s == null){MessageDialog.showDialog("You should open an image first")exit}// get sequence ROIsrois = s.getROIs()if (rois.size() > 0){// request path to save XLS resultfile = FileDialog.open()if (file != null){// display progress framep = new ProgressFrame("exporting...")// set XLS extensionpath = FileUtil.setExtension(file.getAbsolutePath(), ".xls")//create a new excel documentwb = XLSUtil.createWorkbook(path)for(c = 0; c < s.getSizeC(); c++){sh = XLSUtil.createNewPage(wb, "Pixels - " + s.getChannelName(c))line = 0for(i = 0; i < rois.size(); i++){// get current roir = rois.get(i)// create an iterator through the given sequence and ROIit = new SequenceDataIterator(s, r, false, -1, -1, c)XLSUtil.setCellString(sh, 0, line, r.getName())XLSUtil.setCellNumber(sh, 1, line, i)XLSUtil.setCellString(sh, 3, line, "Number of pixel =")XLSUtil.setCellNumber(sh, 4, line, Math.floor(r.getNumberOfPoints()))line += 2// set column titlesXLSUtil.setCellString(sh, 0, line, "X")XLSUtil.setCellString(sh, 1, line, "Y")XLSUtil.setCellString(sh, 2, line, "Z")XLSUtil.setCellString(sh, 3, line, "T")XLSUtil.setCellString(sh, 4, line, "Value")line++while(!it.done()){// set position informationXLSUtil.setCellNumber(sh, 0, line, it.getPositionX())XLSUtil.setCellNumber(sh, 1, line, it.getPositionY())XLSUtil.setCellNumber(sh, 2, line, it.getPositionZ())XLSUtil.setCellNumber(sh, 3, line, it.getPositionT())// set valueXLSUtil.setCellNumber(sh, 4, line, it.get())// pass to next valueit.next()line++}line++}}// save and close excel documentXLSUtil.saveAndClose(wb)// donep.close()}}else MessageDialog.showDialog("You should have at least 1 ROI in your image") -
Version 1 • Released on: 2014-06-10 10:46:52DownloadDescription:
initial version
12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667686970717273747576777879808182838485868788899091importClass(Packages.icy.gui.dialog.MessageDialog)importClass(Packages.icy.gui.frame.progress.ProgressFrame)importClass(Packages.icy.file.FileUtil)importClass(Packages.plugins.tprovoost.scripteditor.uitools.filedialogs.FileDialog)importClass(Packages.icy.util.XLSUtil)importClass(Packages.icy.util.XMLUtil)importClass(Packages.icy.util.ShapeUtil)importClass(Packages.icy.roi.ROIUtil)importClass(Packages.icy.sequence.SequenceDataIterator)// get active sequences = getSequence()if (s == null){MessageDialog.showDialog("You should open an image first")exit}// get sequence ROIsrois = s.getROIs()if (rois.size() > 0){// request path to save XLS resultpath = FileDialog.open()if (path != null){// display progress framep = new ProgressFrame("exporting...")// set XLS extensionpath = FileUtil.setExtension(path, ".xls")//create a new excel documentwb = XLSUtil.createWorkbook(path)for(c = 0; c < s.getSizeC(); c++){sh = XLSUtil.createNewPage(wb, "Pixels - " + s.getChannelName(c))line = 0for(i = 0; i < rois.size(); i++){// get current roir = rois.get(i)// create an iterator through the given sequence and ROIit = new SequenceDataIterator(s, r, false, -1, -1, c)XLSUtil.setCellString(sh, 0, line, r.getName())XLSUtil.setCellNumber(sh, 1, line, i)XLSUtil.setCellString(sh, 3, line, "Number of pixel =")XLSUtil.setCellNumber(sh, 4, line, Math.floor(r.getNumberOfPoints()))line += 2// set column titlesXLSUtil.setCellString(sh, 0, line, "X")XLSUtil.setCellString(sh, 1, line, "Y")XLSUtil.setCellString(sh, 2, line, "Z")XLSUtil.setCellString(sh, 3, line, "T")XLSUtil.setCellString(sh, 4, line, "Value")line++while(!it.done()){// set position informationXLSUtil.setCellNumber(sh, 0, line, it.getPositionX())XLSUtil.setCellNumber(sh, 1, line, it.getPositionY())XLSUtil.setCellNumber(sh, 2, line, it.getPositionZ())XLSUtil.setCellNumber(sh, 3, line, it.getPositionT())// set valueXLSUtil.setCellNumber(sh, 4, line, it.get())// pass to next valueit.next()line++}line++}}// save and close excel documentXLSUtil.saveAndClose(wb)// donep.close()}}else MessageDialog.showDialog("You should have at least 1 ROI in your image")