From e1ea590ab9df3da02e01822469dfa54a9caf36c5 Mon Sep 17 00:00:00 2001 From: tpylak <tpylak> Date: Tue, 10 May 2011 12:56:03 +0000 Subject: [PATCH] LMS-2202 InfectX: importing segmentation images SVN: 21203 --- .../server/images/ImageChannelsUtils.java | 32 ++++++++++++++----- 1 file changed, 24 insertions(+), 8 deletions(-) diff --git a/screening/source/java/ch/systemsx/cisd/openbis/dss/generic/server/images/ImageChannelsUtils.java b/screening/source/java/ch/systemsx/cisd/openbis/dss/generic/server/images/ImageChannelsUtils.java index 2ca1301064a..e3576dc8aad 100644 --- a/screening/source/java/ch/systemsx/cisd/openbis/dss/generic/server/images/ImageChannelsUtils.java +++ b/screening/source/java/ch/systemsx/cisd/openbis/dss/generic/server/images/ImageChannelsUtils.java @@ -141,7 +141,7 @@ public class ImageChannelsUtils boolean mergeAllChannels = utils.isMergeAllChannels(imagesReference); List<AbsoluteImageReference> imageContents = utils.fetchImageContents(imagesReference, mergeAllChannels, true); - return calculateSingleImages(imageContents); + return calculateSingleImages(imageContents, true, mergeAllChannels); } private static RequestedImageSize getSize(BufferedImage img, boolean highQuality) @@ -412,14 +412,15 @@ public class ImageChannelsUtils } /** - * @param allChannelsMerged sometimes we can have a single image which contain all channels - * merged. In this case a different transformation will be applied to it. + * @param useMergedChannelsTransformation sometimes we can have a single image which contain all + * channels merged. In this case a different transformation will be applied to it. */ private static BufferedImage calculateAndTransformSingleImage( - AbsoluteImageReference imageReference, boolean transform, boolean allChannelsMerged) + AbsoluteImageReference imageReference, boolean transform, + boolean useMergedChannelsTransformation) { BufferedImage image = calculateSingleImage(imageReference); - return transform(image, imageReference, transform, allChannelsMerged); + return transform(image, imageReference, transform, useMergedChannelsTransformation); } private static BufferedImage calculateSingleImage(AbsoluteImageReference imageReference) @@ -477,7 +478,10 @@ public class ImageChannelsUtils allChannelsMerged); } else { - List<ImageWithReference> images = calculateSingleImages(imageReferences); + // We do not transform single images here. + // The 'merged channels' transformation will be applied later. + List<ImageWithReference> images = + calculateSingleImages(imageReferences, false, allChannelsMerged); BufferedImage mergedImage = mergeImages(images); // NOTE: even if we are not merging all the channels but just few of them we use the // merged-channel transformation @@ -537,13 +541,25 @@ public class ImageChannelsUtils } } + /** @param useMergedChannelsTransformation used only if transformEachImage is true */ private static List<ImageWithReference> calculateSingleImages( - List<AbsoluteImageReference> imageReferences) + List<AbsoluteImageReference> imageReferences, boolean transformEachImage, + boolean useMergedChannelsTransformation) { List<ImageWithReference> images = new ArrayList<ImageWithReference>(); for (AbsoluteImageReference imageRef : imageReferences) { - BufferedImage image = calculateSingleImage(imageRef); + BufferedImage image; + if (transformEachImage) + { + image = + calculateAndTransformSingleImage(imageRef, true, + useMergedChannelsTransformation); + } else + { + image = calculateSingleImage(imageRef); + + } images.add(new ImageWithReference(image, imageRef)); } return images; -- GitLab