
Untitled
By: a guest on
May 8th, 2012 | syntax:
None | size: 1.26 KB | hits: 8 | expires: Never
#include <cv.h>
#include <highgui.h>
#include<iostream>
using namespace std;
double getEntropy(IplImage* img);
main()
{
IplImage *ip=cvLoadImage("junaid.jpg");
/* cvNamedWindow("Hello",1);
cvShowImage("Hello",ip);
cvWaitKey(0);
*/
getEntropy(ip);
}
double getEntropy(IplImage* img)
{
double ent=0;
img=cvLoadImage("junaid.jpg");
int h,w,c,bins;
h=img->height; w=img->width; c=img->nChannels;
bins=256;
int hSize[]={bins};
//---- initilize to 0
for(int i=0;i<bins;i++)
hSize[i]=0;
//-------- Getting histogram
CvHistogram* hist;
//----------------If image is gray then continues else convert it into grayscale
IplImage* gray_img=cvCreateImage( cvSize( w, h ), IPL_DEPTH_8U, 1 );
cvCvtColor( img, gray_img, CV_RGB2GRAY );
//IplImage *ip=cvLoadImage("junaid.jpg");
cvNamedWindow("Hello",1);
cvShowImage("Hello",gray_img);
cvWaitKey(0);
cout<<"X and Y are "<<w<<", "<<h<<endl;
cvWaitKey(0);
//--------calculating Histogram
int x=0;
CvScalar s;
for(i=0;i<h;i++)
for(int j=0;j<w;j++)
{
s=cvGet2D(gray_img,i,j);
int level=s.val[0];
cout<<i<<","<<j<<"= "<<level<<endl;
//cout<<level<<" " <<x++<<endl;
//hSize[level]++;
cvWaitKey(0);
}
return ent;
}