Transformation de distance OpenCV produisant une image qui ressemble exactement à l'image d'entrée

Je fais un certain travail de détection à l'aide d'OpenCV, et j'ai besoin d'utiliser la distance de la transformation. À l'exception de la distance en fonction de transformation dans opencv me donne une image qui est exactement la même que l'image que j'ai de l'utiliser comme source. Quelqu'un sait ce que je fais de mal? Voici la partie de mon code:

cvSetData(depthImage, m_rgbWk, depthImage->widthStep);

//gotten openCV image in "depthImage"           

IplImage *single_channel_depthImage = cvCreateImage(cvSize(320, 240), 8, 1);
cvSplit(depthImage, single_channel_depthImage, NULL, NULL, NULL);

//smoothing
IplImage *smoothed_image = cvCreateImage(cvSize(320, 240), 8, 1);
cvSmooth(single_channel_depthImage, smoothed_image, CV_MEDIAN, 9, 9, 0, 0);

//do canny edge detector
IplImage *edges_image = cvCreateImage(cvSize(320, 240), 8, 1);
cvCanny(smoothed_image, edges_image, 100, 200);

//invert values
IplImage *inverted_edges_image = cvCreateImage(cvSize(320, 240), 8, 1);
cvNot(edges_image, inverted_edges_image);

//calculate the distance transform
IplImage *distance_image = cvCreateImage(cvSize(320, 240), IPL_DEPTH_32F, 1);
cvZero(distance_image);

cvDistTransform(inverted_edges_image, distance_image, CV_DIST_L2, CV_DIST_MASK_PRECISE, NULL, NULL);

En un mot, j'ai grad l'image à partir de la kinect, de la transformer en une image de canal, lisse, d'exécuter le savant détecteur de bord, inverser les valeurs, et ensuite je fais la distance transformer. Mais l'image est exactement la même que l'image d'entrée. Quel est le problème?

Merci!

source d'informationauteur Mina Almasry