int main(int argc, char *argv[]) { if (argc != 2) { printf("usage: ./analyzer <cropped_image>\n"); exit(0); } IplImage* region = cvLoadImage(argv[1],CV_LOAD_IMAGE_COLOR); height = region->height; width = region->width; step = region->widthStep; channels = region->nChannels; img_hsv = convertRGBtoHSV(region); hsv_data = (uchar *)img_hsv->imageData; cvNamedWindow("window",CV_GUI_EXPANDED); cvSetMouseCallback("window", my_mouse_callback, region); cvShowImage("window",region); while (key != 'q') { key = cvWaitKey(0); } printf("%d %d %d | %d %d %d\n", h_min,s_min,v_min, h_max, s_max, v_max); cvDestroyAllWindows(); cvReleaseImage(®ion); cvReleaseImage(&img_hsv); return 0; }
void Color::setB( double b ) { b_ = std::max( 0.0, std::min( B_MAX, b ) ); convertRGBtoHSV( r_, g_, b_, &h_, &s_, &v_ ); }
void Color::setG( double g ) { g_ = std::max( 0.0, std::min( G_MAX, g ) ); convertRGBtoHSV( r_, g_, b_, &h_, &s_, &v_ ); }
void Color::setR( double r ) { r_ = std::max( 0.0, std::min( R_MAX, r ) ); convertRGBtoHSV( r_, g_, b_, &h_, &s_, &v_ ); }
void Color::setRGB( double r, double g, double b ) { r_ = std::max( 0.0, std::min( R_MAX, r ) ); g_ = std::max( 0.0, std::min( G_MAX, g ) ); b_ = std::max( 0.0, std::min( B_MAX, b ) ); convertRGBtoHSV( r, g, b, &h_, &s_, &v_ ); }
/** * Create HSV-Pixel from RGB-Pixel */ ColorHSV(double red, double green, double blue) { convertRGBtoHSV(red, green, blue); }