Possible to process live image?

Discuss questions and projects related to processing of imaging data here
Post Reply
user-6033
Posts: 89
Joined: Thu Jan 01, 1970 1:00 am

Possible to process live image?

Post by user-6033 »

Hi,

I was wondering if it is possible to accomplish some processing on live image? I have tried some simple things but it says image is locked for processing.

image = Zen.Acquisition.StartLive()
Zen.Application.ActiveDocument = image
SomeProcessing(image)

Best regards
Fredrik Olsson
user-4
Posts: 398
Joined: Thu Jan 01, 1970 1:00 am

Post by user-4 »

Hello Fredrik Olsson,

you will need AcquireImage() as you can only process the snapped Image.

Refer to the following code:

Code: Select all

#######################################################
## A C Q U I S I T I O N
##
## Macro name: Demo - Snap and save user defined number of images
##
## Required demo files: no
##
## Required module/licence: no
##
## ENTER PATH, SAMPLE NAME, NUMBER OF IMAGES, IMAGE TYPE
## SNAP IMAGES IN A LOOP, BURN IN SCALEBAR FOR NON-CZI IMAGES,
## SAVE IMAGES AUTOMATICALLY
## 
#######################################################
##
##
## activate IO library
from System.IO import Directory
##
## create setup dialog
window = ZenWindow()
Images = Zen.Application.Environment.GetFolderPath(ZenSpecialFolder.Images)
window.AddFolderBrowser('destpath','DestinationFolder: ',Images)
window.AddCheckbox('chkScale','Snap with scalebar ',False)
window.AddTextBox('tval','Enter sample name:','sample')
window.AddDropDown('ddval','Image type:            ',['.CZI','.JPG','.JPEG','.BMP','.TIF','.TIFF'],0)
window.AddIntegerRange('ival','Number of images:',1,1,50)
## do setup
result=window.Show()
## check, if Cancel button was clicked
if result.HasCanceled == True:
    sys.exit('Macro aborted with Cancel!')
## get string name of path
path = result.GetValue('destpath')
## Check, if path exists
if (Directory.Exists(path)== False):
    strMessage = 'Path: ' + path + ' does not exist!\nRestart macro and select an existing path!'
    sys.exit(strMessage)
## get sample name
sampleName = result.GetValue('tval')
## check, if sample name is not empty
sampleName = sampleName.Trim()
#if sampleName != "":
if sampleName == "":
    strMessage = 'Sample name is empty!\nRestart macro and enter a sample name!'
    sys.exit(strMessage)
## Get image number, image type, scale
imageNumber = result.GetValue('ival')
imageType = str(result.GetValue('ddval')).strip()
scale = result.GetValue('chkScale')
##
## IMAGES
## loop over number of images
count = 0
for i in range(0,imageNumber): 
    ## Show live image
    live = Zen.Acquisition.StartLive()
    Zen.Application.ActiveDocument = live
    ## Set exposure time (AutoExposure)
    Zen.Acquisition.AutoExposure()
    ## Show pause dialog 
    Zen.Application.Pause("Search field of interest\nand focus image number: " + str(i+1) + "  of  " + str(imageNumber))
    ## Snap image
    image = Zen.Acquisition.AcquireImage()
    Zen.Application.ActiveDocument = image
    ## Define sample name and image number
    newFileName = sampleName + str(i+1) + imageType
    newPathAndFile = path + "\\" +  newFileName
    ## insert scalebar
    if scale == True:
        image.InsertDefaultScaleBarGraphic()
        if imageType <> '.CZI':
            ## Burn in scalebar for non-CZI images
            AnnoImage = image.BurnInGraphics()
            ## Save the image with scalebar automatically
            Zen.Application.Save(AnnoImage,newPathAndFile)  
            AnnoImage.Close()
        if imageType == '.CZI':     
            Zen.Application.Save(image,newPathAndFile)  
    elif scale == False:
        ## Save the image automatically
        Zen.Application.Save(image,newPathAndFile)  
    ## Close image
    image.Graphics.Clear()
    image.Close()
    count = count + 1
## Close live image
Zen.Acquisition.StopLive()
##
## end of loop 
## IMAGES
##
## Show message
strMessage = str(count) + ' Images are saved in: \n' + path
Zen.Application.Pause(strMessage)
##
#######################################################
user-6033
Posts: 89
Joined: Thu Jan 01, 1970 1:00 am

Post by user-6033 »

Thank you, then I know.
I have a method for finding the sample edges and I thought of speeding it up by using the live stream instead of snapped images.

Best regards

Fredrik Olsson
noah brown
Posts: 1
Joined: Tue Sep 05, 2023 8:21 am

Re: Possible to process live image?

Post by noah brown »

I also have the same questions as you. Check Immaculate Grid
Mike Wood
Posts: 1
Joined: Tue Sep 12, 2023 1:22 pm

Re: Possible to process live image?

Post by Mike Wood »

Such a valuable sharing that help me in processing my dance schools images.
gurock244 tridadd
Posts: 1
Joined: Wed Jan 17, 2024 2:29 pm

Re: Possible to process live image?

Post by gurock244 tridadd »

Your attention to detail sets your blog apart. https://khunmobb.com/
mitchelhorstone horstone
Posts: 2
Joined: Thu Jan 18, 2024 2:54 pm

Re: Possible to process live image?

Post by mitchelhorstone horstone »

Hello all. I've been honing my skills as a spin bowler, and I've got a burning question. What's the secret to mastering the art of spin bowling in cricket? I've been working on my variations, grip, and release, but I'm always eager to learn more. Whether you're a seasoned pro or just starting your journey in spin bowling, your insights and experiences could be invaluable. Share your tips on cricket live line, tricks, and any resources that have helped you become a spin wizard on the field

Code: Select all

elliptical machine
Jayden Ivey
Posts: 2
Joined: Wed Aug 23, 2023 4:08 am
Contact:

Re: Possible to process live image?

Post by Jayden Ivey »

Maybe you need to make sure that the picture isn't being used by any other program or process to fix this problem. Close any programs that might be using the picture, and then try the processing again.
Life is different aspects.
Post Reply