Как реализовать imhmin() в C++

Я хотел бы реализовать функцию imhmin() Matlab в C++. Во-первых, я изучил алгоритм. Подавляет минимальные значения интенсивности пикселей. Не максимальный код подавления:

void non_maxima_suppression(const cv::Mat& src, cv::Mat& mask, const bool remove_plateaus)
{
    // find pixels that are equal to the local neighborhood not maximum (including 'plateaus')
    cv::dilate(src, mask, cv::Mat());
    cv::compare(src, mask, mask, cv::CMP_GE);

    // optionally filter out pixels that are equal to the local minimum ('plateaus')
    if (remove_plateaus) {
        cv::Mat non_plateau_mask;
        cv::erode(src, non_plateau_mask, cv::Mat());
        cv::compare(src, non_plateau_mask, non_plateau_mask, cv::CMP_GT);
        cv::bitwise_and(mask, non_plateau_mask, mask);
    }
} 

Функция imhmin() возвращает подавленные значения. Однако не максимальное подавление возвращает двоичные значения. Как я могу справиться с этим?

1 ответ

Используйте полученный результат как маску для исходного изображения.

Другие вопросы по тегам