Problem printing HSV value of pixel in opencv

i have detected 22 snooker balls in an image and have got their center points(center.x, center.y). I can print their BGR values but i need the values in HSV. I have posted my code. Hope someone can help.

  
#include <stdio.h>  
#include <cv.h>  
#include <highgui.h>  
#include <math.h>  
  
int main(int argc, char** argv)  
{  
	//load image from directory  
    IplImage* img = cvLoadImage("C:\\Users\\Nathan\\Desktop\\SnookerPic.png");  
  
  
    IplImage* gray = cvCreateImage(cvGetSize(img), IPL_DEPTH_8U, 1);  
    IplImage* hsv = cvCreateImage(cvGetSize(img), IPL_DEPTH_8U, 1);  
    CvMemStorage* storage = cvCreateMemStorage(0);  
  
	//covert to grayscale  
    cvCvtColor(img, gray, CV_BGR2GRAY);  
  
    // This is done so as to prevent a lot of false circles from being detected  
    cvSmooth(gray, gray, CV_GAUSSIAN, 7, 7);  
  
    IplImage* canny = cvCreateImage(cvGetSize(img),IPL_DEPTH_8U,1);  
    //IplImage* rgbcanny = cvCreateImage(cvGetSize(img),IPL_DEPTH_8U,3);  
    //cvCanny(gray, canny, 50, 100, 3);  
  
	//detect circles  
    CvSeq* circles = cvHoughCircles(gray, storage, CV_HOUGH_GRADIENT, 1, 35.0, 75, 60,0,0);  
    cvCvtColor(canny, rgbcanny, CV_GRAY2BGR);  
    cvCvtColor(img,hsv, CV_BGR2HSV);  
	//draw all detected circles  
    for (int i = 0; i < circles->total; i++)  
    {  
         // round the floats to an int  
         float* p = (float*)cvGetSeqElem(circles, i);  
         cv::Point center(cvRound(p[0]), cvRound(p[1]));  
         int radius = cvRound(p[2]);  
		   
		 CvScalar s;  
		   
		 s = cvGet2D(img,center.y, center.x);//colour of circle  
		printf("B: %f G: %f R: %f\n",s.val[0],s.val[1],s.val[2]);  
  
                //Heres the problem i think, trying to print center.x and center.y pixel  
		 int h = (int)hsvImage->imageData[];    
                 int s = (int)hsvImage->imageData[];    
                 int v = (int)hsvImage->imageData[];    
                 printf("h %i s %i v %i\n", h, s, v);   
   
         // draw the circle center  
         cvCircle(img, center, 3, CV_RGB(0,255,0), -1, 8, 0 );  
  
         // draw the circle outline  
         cvCircle(img, center, radius+1, CV_RGB(0,0,255), 2, 8, 0 );  
		  
		 //display coordinates  
         printf("x: %d y: %d r: %d\n",center.x,center.y, radius);  
  
    }  
  
	//create window  
    //cvNamedWindow("circles", 1);  
    cvNamedWindow("SnookerImage", 1);  
	//show image in window  
    //cvShowImage("circles", rgbcanny);  
    cvShowImage("SnookerImage", img);  
  
    cvSaveImage("out.png", img);  
	//cvDestroyWindow("SnookerImage");  
	//cvDestroyWindow("circles");  
	//cvReleaseMemStorage("storage");  
    cvWaitKey(0);  
  
    return 0;  
}  

This isn’t an openCV forum, it’s for openFrameworks. You should ask on the openCV mailing list.