Here is the sample code:
cv::Mat skel(img.size(), CV_8UC1, cv::Scalar(0));
cv::Mat temp;
cv::Mat eroded;
cv::Mat element = cv::getStructuringElement(cv::MORPH_CROSS, cv::Size(3, 3));
bool done;
do
{
cv::erode(img, eroded, element);
cv::dilate(eroded, temp, element);
cv::subtract(img, temp, temp);
cv::bitwise_or(skel, temp, skel);
eroded.copyTo(img);
done = (cv::norm(img) == 0);
} while (!done);
More details at:
http://felix.abecassis.me/2011/09/opencv-morphological-skeleton/[
^]