OpenCV's Canny Edge Detection w C ++

Chcę wyodrębnić krawędzie dłoni, ale otrzymuję następujący wynik. Próbowałem dostosować dolny i górny próg, ale wciąż nie mogę uzyskać żądanego wyjścia. Poniżej kod i jego wyjście. Co wydaje się być problemem?

To jestobraz wyjściowy wygenerowany przez poniższy kod.

#include <opencv2/core/core.hpp>
#include <opencv2/highgui/highgui.hpp>
#include <opencv2/imgproc/imgproc.hpp>

int main(){

    cv::Mat image= cv::imread("open_1a.jpg");
    cv::Mat contours;
    cv::Mat gray_image;

    cvtColor( image, gray_image, CV_RGB2GRAY );

    cv::Canny(image,contours,10,350);

    cv::namedWindow("Image");
    cv::imshow("Image",image);

    cv::namedWindow("Gray");
    cv::imshow("Gray",gray_image);

    cv::namedWindow("Canny");
    cv::imshow("Canny",contours);
    cv::waitKey(0);
}

questionAnswers(1)

yourAnswerToTheQuestion