OpenCV est Habile Détection des bords en C++

Je veux extraire les bords de la main, mais j'obtiens le résultat suivant. J'ai tenté d'ajuster le bas et le seuil haut, mais je ne peux toujours pas obtenir le résultat souhaité. J'ai inclus ci-dessous le code et sa sortie. Ce qui semble être le problème?

C'est le l'image de sortie généré par le code ci-dessous.

#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);
}

OriginalL'auteur Og Namdik | 2012-08-16