Skip to content

MLImage disposes in some cases after CreateEnumerable .ToArray() if there is ResizeImages in the pipeline #7444

Open
@Lavshyak

Description

@Lavshyak

System Information:

  • OS & Version: Windows 11
  • ML.NET Version: ML.NET v4.0.2
  • .NET Version: .NET 9.0

Describe the bug
In some cases MLImage disposes after CreateEnumerable .ToArray() if there is ResizeImages in the pipeline.
If SourceImage size == ResizedImage size, after CreateEnumerable .ToArray() SourceImage disposes.
If SourceImage size != ResizedImage size, after CreateEnumerable .ToArray() SourceImage doesn't dispose.

To Reproduce
Project with xUnit and reproduction:
https://github.com/Lavshyak/MLNetImageDisposingProblem

Expected behavior
Provide a choice whether to dispose or not. If not, then SourceImage doesn't dispose.
Or just never dispose.
Or just write about it in red text in the documentation.

Screenshots, Code, Sample Projects
Project with xUnit and reproduction:
https://github.com/Lavshyak/MLNetImageDisposingProblem

Metadata

Metadata

Assignees

No one assigned

    Labels

    imageBugs related image datatype tasks

    Type

    No type

    Projects

    No projects

    Milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions