Skip to content

filter/addPoissonNoise hangs up with large pixel values #641

@bthoughton

Description

@bthoughton

Hello,

I have been working on a project for the NIH that uses pyimagej to run ImageJ ops from python. Yesterday I was working on developing a plugin which calls the filter-addpoissonnoise op. During testing I determined that the op would hang up seemingly doing nothing when the input images had large pixel values. I believe this problem can be summarized as a precision/underflow problem when very large lambda values (expected number of successes in a given interval) are introduced to the Knuth algorithm. This has been documented before in wiki's Generating Poisson-distributed random variables section. As lambda becomes large exp(-lambda) approaches 0 and becomes so small it is evaluated as exactly 0. This value is checked in a while loop against another value which is never less than 0: while p >= L: do stuff where L = 0 and p is never less than 0. Therefore the loop runs forever.

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions