Вот пример моего изображения с пятнами, которые я хочу определить:

Я использую OpenCV с C++ и буду признателен за рекомендации по наилучшему подходу к выявлению этих мест. В частности, мне нужна помощь в:
- Предварительной обработке изображения для уменьшения шума и повышения видимости пятен.
- Выявление и выделение ярких пятен.
- Обрисуйте выявленные пятна.
#include
int main() {
cv::Mat image = cv::imread("image.png", cv::IMREAD_GRAYSCALE);
if (image.empty()) {
return -1;
}
// Thresholding to create a binary image
cv::Mat binaryImage;
cv::threshold(image, binaryImage, 200, 255, cv::THRESH_BINARY);
// Finding contours
std::vector contours;
cv::findContours(binaryImage, contours, cv::RETR_EXTERNAL, cv::CHAIN_APPROX_SIMPLE);
// Drawing contours
cv::Mat outputImage = cv::Mat::zeros(image.size(), CV_8UC3);
for (size_t i = 0; i < contours.size(); i++) {
cv::drawContours(outputImage, contours, (int)i, cv::Scalar(0, 0, 255), 2);
}
cv::imwrite("output.png", outputImage);
return 0;
}
Подробнее здесь: https://stackoverflow.com/questions/784 ... encv-and-c
Мобильная версия