Я пытаюсь обнаружить выпуклость дефектов на изображении, используя OpenCV. Тем не менее, результат кажется недостаточно хорошим. Несколько вогнутых моментов не обнаруживаются, даже они очень ясны. Вот мой код < /p>
Я пытаюсь обнаружить выпуклость дефектов на изображении, используя OpenCV. Тем не менее, результат кажется недостаточно хорошим. Несколько вогнутых моментов не обнаруживаются, даже они очень ясны. Вот мой код < /p> [code]void test_convexityDefects( const cv::Mat& binary_, std::vector concave_points_) {
concave_points_.clear(); std::vector contours; cv::findContours(binary_, contours, cv::RETR_EXTERNAL, cv::CHAIN_APPROX_SIMPLE); for (auto& cnt : contours) { std::vector hullIndices; cv::convexHull(cnt, hullIndices, false, false); std::vector defects; if (cnt.size() >= 3 && hullIndices.size() >= 3) { cv::convexityDefects(cnt, hullIndices, defects); std::vector farPoints; for (const auto& d : defects) { int farIdx = d[2]; float depth = d[3] / 256.0f; if (depth > 1) { concave_points_.push_back(cnt[farIdx]); } } } } } [/code] Есть какой -либо метод для обнаружения всех вогнутых точек на изображении?>