Skip to content

[SUPPORT] software ROI cropping for cameras that don't allow flexible ROI setting #1574

@barentine

Description

@barentine

One of the painful things with the IDS cameras is that some of them do not offer much flexibility in terms of setting ROIs. We would ideally set a much smaller ROI than is supported by our camera - otherwise we save loads of extra data, and there is also the annoying aspect of having to find the region you care about on the chip when PYMEAcquire loads up with a relatively massive ROI compared to the region you are actually interested in.

Where are you stuck?
My familiarity with the Acquire.Hardware.Camera.MultiviewCameraMixin makes it tempting to set up that way and have a defined ROI center I can adjust the size of regardless of the actual chip setting. I could see an argument even for adding a method for editing/shifting the ROI center.

However, MultiViewCameraMixin is now deprecated with a TODO to remove it. Is there already a replacement for my use case? I've had a quick look at Acquire.Hardware.splitter, but it does not seem to be particularly useful for a live Software cropped ROI during acquisition.

What makes sense here? I see how the Multiview and Splitter stuff replicate the 'multi' aspect, but I do think it would be nice to allow a software crop so that in PYMEAcquire, you could actually get the ROI you try to set even if your camera has some finicky stuff going on (which, so far, I think they all have some level of stride enforcement, etc.). Is there a refactor option where we keep the software ROI setting aspect of Multiview, but remove the Multi in deference to splitter? Otherwise, I think I will try adding a software ROI setting to the ids_peak_cam.py so if you try to set an ROI and the hardware ROI can't go far enough, ids_peak_cam.IDS_Camera.ExtractColor will crop further so you're only fed the ROI you asked for (modulo asking for a smaller ROI than you could get, rather than a larger one).

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Type

    No type
    No fields configured for issues without a type.

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions