Extractin Channels from czi image sets
Hi,
I have the problem that I want to extract a channel from CZI images to run automated analyses.
First steps are simple and should include:
Extraction of one channel, making an 8bit grey scale of if and work on it.
It opens in color composite view. If I subsample it is dependent on the view. When I record macro, I always get the error that methods are not found, thus I can't automate:
In this case: Active RegionInUse not found:
With New MediaCy.Viewers.Set.ImageSetViewOptionsCommand(grrrr)
            .ActiveRegionInUse = MediaCy.IQL.Sets.mcImageSetActivePortionTypes.mcisaptActiveDisplayRegion
            .Run(window1)
        End Withor other method (changing view, directly switch channel and extract grey scale)
Public Function Grr2() As SimpleScript
        Grr2 = New SimpleScript
        Dim var1 = "6_15_L17_2", doc1, window1, image1, doc2
        With Application.DocumentCommands.Activate(Grr2)
            .Run(var1, doc1)
        End With
        With Application.WindowCommands.Define(Grr2)
            .Run(doc1, window1)
        End With
        With New MediaCy.Viewers.Set.ImageSetViewOptionsCommand(Grr2)
            .ColorCompositeView = False
            .Run(window1)
        End With
        With Application.DocumentCommands.Activate(Grr2)
            .Run(doc1, doc1)
        End With
        With New MediaCy.Viewers.Set.ImageSetViewOptionsCommand(Grr2)
            .ViewLocation = New McImageSetLocations
            .ViewLocation.Add(mcImageSetDimensions.mcisdChannel, 1)
            .Run(window1)
        End With
        With Application.RibbonCommands.SelectRibbonTab(Grr2)
            .TabName = "Adjust"
            .Run()
        End With
        With Adjust.ImageCommands.Convert(Grr2)
            .Destination = Image.ConvertTypes.Mono8
            .ConvertOption = Image.ConvertOptions.Custom
            .SourceRange = New RangeD(0R, 4096R)
            .DestinationRange = New RangeD(0R, 255R)
            .Visible = True
            .Run(doc1, image1)
        End With
        With Application.DocumentCommands.Activate(Grr2)
            .Run(image1, doc2)
        End With
    End Function
In this case the method .colorCompositeView is not found if repeating the script. In detail: MediaCy.IQL.Application.McCommandExtended.ColorCompositeView not found...
Is there some lib to integrate that those commands work?
Many thx
Daniel                Best Answer
- 
            Hi Dan,
It looks like there is a problem with that command in 9.1.4. We are going to release a new Premier version pretty soon, but right now you can use the attached project, which shows how to extract all Z-stacks from image set without using that command:Public Sub ExtractZStacksFromActiveImage Dim imset As MediaCy.IQL.Sets.McImageSet=ThisApplication.ActiveDocument.Data If imset Is Nothing Then Exit Sub'this is not image set 'get number of channels in stack Dim nChannels As Long=imset.GetDimensionLength(mcImageSetDimensions.mcisdChannel,imset.GetCurrentLocation) For chInd As Integer=0 To nChannels-1 ExtractZStackFromChannel(imset,chInd) Next End Sub Public Sub ExtractZStackFromChannel(imset As MediaCy.IQL.Sets.McImageSet,chInd As Long) Dim setLoc As New MediaCy.IQL.Sets.McImageSetLocations 'select channel to location setLoc.Add(mcImageSetDimensions.mcisdChannel, chInd) 'get number of frames in Z dimension Dim nZframes As Long=imset.GetDimensionLength(mcImageSetDimensions.mcisdZ,setLoc) 'create region to extract Dim theRegion As MediaCy.IQL.Sets.McImageSetRegion=ThisApplication.CreateOperator("McImageSetLib.McImageSetRegion") Dim theSections As MediaCy.IQL.Sets.McImageSetSections = theRegion.Sections theSections.Add(mcImageSetDimensions.mcisdChannel,chInd,1) theSections.Add(mcImageSetDimensions.mcisdZ,0,nZframes) 'create image of Z frames (invisible) Dim outIm As McImage=imset.ExtractImage(theRegion, mcImageCreateFlags.mcicfNotVisible Or mcImageCreateFlags.mcicfNoAddToCollection) 'show image outIm.Visible=True End SubLet me know if it will work for you,
Regards,
Yuri0 
Answers
- 
            Hi Daniel,
What version of Premier do you have? The current version is 9.1.4, it can be updated automatically at startup.
Please try the macro below, that works in 9.1.4:Public Function ExtractActiveChannel() As SimpleScript ExtractActiveChannel = New SimpleScript Dim doc1, spcal1, window1, image1, doc2, image2, doc3 With Application.DocumentCommands.Active(AutoThreshold) .Run(doc1) End With With Application.WindowCommands.Define(ExtractActiveChannel) .Run(doc1, window1) End With With New MediaCy.Viewers.Set.ImageSetViewOptionsCommand(ExtractActiveChannel) .ColorCompositeView = False .Run(window1) End With With Adjust.ImageSetCommands.ExtractDimension(ExtractActiveChannel) .Dimension = MediaCy.IQL.Sets.mcImageSetDimensions.mcisdDefault .Run(doc1, image1) End With With Application.DocumentCommands.Activate(ExtractActiveChannel) .Run(image1, doc2) End With With Adjust.ImageCommands.Convert(ExtractActiveChannel) .Destination = Image.ConvertTypes.Mono8 .ConvertOption = Image.ConvertOptions.Scale .Visible = True .Run(doc2, image2) End With With Application.DocumentCommands.Activate(ExtractActiveChannel) .Run(image2, doc3) End With End Function
Regards,
Yuri0 - 
            
Thanks Yuri,
According to SW it's version 9.1.5638.4....Premier 3D version.
Now type identifier invalid in line
With New MediaCy.Viewers.Set.ImageSetViewOptionsCommand(ExtractActiveChannel)
Those are imported - something missing?
Imports MediaCy.Addins.SCalibration.Commands Imports MediaCy.Addins.Scripting Imports MediaCy.Addins.SCalibration Imports MediaCy.Addins.Scripting.Workflow Imports MediaCy.Viewers.Image Imports MediaCy.Viewers.Set Imports MediaCy.IQL.Sets
0 - 
            Hi Daniel,
It could be that the version you have doesn't have definition for ImageSetViewOptionsCommand (there was a bug about it).
To verify that please try to disable this command (comment it out):With New MediaCy.Viewers.Set.ImageSetViewOptionsCommand(ExtractActiveChannel) .ColorCompositeView = False .Run(window1) End With
Let me know if that's fixed the error.
Regards,
Yuri0 - 
            
Hi Yuri,
did not fix it. now
.Dimension = MediaCy.IQL.Sets.mcImageSetDimensions.mcisdDefault
in the next with block returns that a valid data type is expected.
Thus the MediaCy.IQL.Sets.mcImageSetDimensions.mcisdDefault object is not found.
If I replace with integer 0 then it extracts a set with both channels, 1 to 4 different dimensions of channel 1. 5 upwards always channel 1 (gave up at six)
However, at least with 0 I can work if I can switch in the set.
Best
Dan
0 
Categories
- All Categories
 - 961 Image-Pro v9 and higher
 - 9 Image-Pro FAQs
 - 18 Image-Pro Download & Install
 - 448 Image-Pro General Discussions
 - 486 Image-Pro Automation (Macros, Apps, Reports)
 - 20 AutoQuant Deconvolution
 - 2 AutoQuant Download & Install
 - 18 AutoQuant General Discussions
 - 195 Image-Pro Plus v7 and lower
 - 3 Image-Pro Plus Download & Install
 - 106 Image-Pro Plus General Discussions
 - 86 Image-Pro Plus Automation with Macros
 - 19 Legacy Products
 - 16 Image-Pro Premier 3D General Discussions
 - 26 Image-Pro Insight General Discussions
 
