+
Skip to content

Fix wrong pixel channel truncation in binary threshold and truncate threshold #697

@marco-langer

Description

@marco-langer

Actual behavior

gil::threshold_truncate() and gil::threshold_binary() from gil/image_processing/truncate.hpp employ a hard-coded value of 0 for the channel minimum value and a value of std::numeric_limits<channel_t>::max() for the maximum value. This works only for unsigned integer channel types such as gil::rgb8_pixel_t and gil::gray8_pixel_t, but does not work for signed channel types and also not for floating point types whose value range is limited from 0.0 to 1.0.

Edit: Otsu thresholding also employs std::numeric_limits, which is invalid for scoped channels.

Expected behavior

Correct channel value truncation according to the channel min/max values.

Metadata

Metadata

Assignees

No one assigned

    Labels

    Type

    No type

    Projects

    No projects

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions

      点击 这是indexloc提供的php浏览器服务,不要输入任何密码和下载