titanum
14-02-2011, 19:42
Ciao a tutti, ho da poco scoperto questa libreria grafica e ho cominciato a darle un'occhiata. Ho scritto questo codice per calcolare l'istogramma di un'immagine in bianco e nero e poi stampare il valore minimo e quello massimo, ma non funziona, precisamente si blocca dopo aver creato l'istogramma (viene visualizzata la frase istogramma creato ma non la frase istogramma calcolato) qualcuno pił esperto sa dirmi dove sbaglio? Grazie
[
#include <cv.h>
#include <highgui.h>
#include <math.h>
#include "common.h"
#include "irisSegmentation.h"
#include "featureExtraction.h"
int verboseLevel=65535;
float weight[3]={0,0,1};
int w,bucketNumber=40;
int compDim=150;
char separator[2];
int enhanceStep=8;
int resizeDim=600;
int numThread=2;
float sat=0;
int main(int argc,char *argv[])
{
IplImage *img = NULL;
IplImage *ir1 = NULL;
CvRect r1;
img=cvLoadImage(argv[1], 1);
int h_bins = 30, s_bins = 32;
IplImage* hsv = cvCreateImage( cvGetSize(img), IPL_DEPTH_8U, 3 );
cvCvtColor( img, hsv, CV_BGR2HSV );
		
CvHistogram* hist;
int hist_size[] = { h_bins, s_bins };
float s_ranges[] = { 0, 255 };
float* ranges[] = {s_ranges };
hist = cvCreateHist( 1, hist_size, CV_HIST_ARRAY, ranges, 1 );
printf("istogramma creato");
cvCalcHist( hsv, hist, 0, 0 );
printf("istogramma calcolato");
float max_value = 0;
float min_value=0;
cvGetMinMaxHistValue( hist, &min_value, &max_value, 0, 0 );
printf("valori: %f %f",min_value, max_value);
cvWaitKey(0);
}
[
#include <cv.h>
#include <highgui.h>
#include <math.h>
#include "common.h"
#include "irisSegmentation.h"
#include "featureExtraction.h"
int verboseLevel=65535;
float weight[3]={0,0,1};
int w,bucketNumber=40;
int compDim=150;
char separator[2];
int enhanceStep=8;
int resizeDim=600;
int numThread=2;
float sat=0;
int main(int argc,char *argv[])
{
IplImage *img = NULL;
IplImage *ir1 = NULL;
CvRect r1;
img=cvLoadImage(argv[1], 1);
int h_bins = 30, s_bins = 32;
IplImage* hsv = cvCreateImage( cvGetSize(img), IPL_DEPTH_8U, 3 );
cvCvtColor( img, hsv, CV_BGR2HSV );
CvHistogram* hist;
int hist_size[] = { h_bins, s_bins };
float s_ranges[] = { 0, 255 };
float* ranges[] = {s_ranges };
hist = cvCreateHist( 1, hist_size, CV_HIST_ARRAY, ranges, 1 );
printf("istogramma creato");
cvCalcHist( hsv, hist, 0, 0 );
printf("istogramma calcolato");
float max_value = 0;
float min_value=0;
cvGetMinMaxHistValue( hist, &min_value, &max_value, 0, 0 );
printf("valori: %f %f",min_value, max_value);
cvWaitKey(0);
}