Я хочу нарисовать края помидоров в ящике.Для этого я использую Canny алгоритм обнаружения ребер.Проблема с этим заключается в том, что в ящике некоторые помидоры располагаются поверх другого, как показано на рисунке ниже:
Как одинможно увидеть, что некоторые помидоры имеют над ними больше света, чем другие, поэтому Кэнни дает следующий результат:
Как можносм. Кэнни не может обнаружить края помидоров в конце ящика, где на исходном изображении мало света.
У кого-нибудь есть какое-нибудь решение для этого?(Невозможно получить равномерный свет на все помидоры, но если есть какой-то алгоритм, который может сделать это, было бы очень полезно.)
Вот мой код OpenCV:
#include <opencv2/opencv.hpp>
using namespace cv;
Mat img, img_gray, img_value, fz, fg, I, pre, cost, vis, G, img_draw, in_que, skip, img_canny;
int main(){
std::string filepath = "/Users/vedanshu/Desktop/IMG_5207.JPG";
img = imread(filepath);
cvtColor(img, img_gray, cv::COLOR_BGRA2GRAY);
img_gray.copyTo(img_value);
GaussianBlur(img_value, img_value, Size(3, 3), 0, 0, BORDER_DEFAULT);
Canny(img_gray, img_canny, 50, 50);
imwrite( "/Users/vedanshu/Desktop/test_canny.png", img_canny );
}