C++ で matlab の imhmin() 関数を実装したいと考えています。まず、アルゴリズムを調べました。最小ピクセル強度値を抑制します。非最大抑制コードは次のとおりです。
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() 関数は抑制された値を返します。ただし、非最大抑制はバイナリ値を返します。どうすれば対処できますか?