안녕 얘들 아 나는 런타임 오류가 있고 잘못된 숫자 입력으로 어쩌면 무엇인가 몰라? 나는 약간의 도움을 청할 것이라고 생각했다.쌍곡선 최종 확률 밀도 함수 Opencv
어쩌면 무엇인가가 t[x]=gmin*pow(gmax/gmin, factor);
에있다.
void image::hhyper(const char* path)
{
IplImage* img = cvLoadImage(path);
IplImage* out = cvCreateImage(cvGetSize(img), IPL_DEPTH_8U, 3);
h = img->height;
w = img->width;
step = img->widthStep;
channels = img->nChannels;
data = (uchar *)img->imageData;
newdata = (uchar *)out->imageData;
int gmin=20;
int gmax=200;
double sum=0;
double t[256];
double factor;
for(int a=0; a<h; a++){
for(int b=0; b<w; b++){
for(int k=0; k<3; k++){
newdata[i*step+j*channels+k]=data[i*step+j*channels+k];
}
}
}
for(int x=0; x<256; x++){
sum+=table[x];
factor=sum/(h*w);
t[x]=gmin*pow(gmax/gmin, factor);
}
for(int a=0; a<h; a++){
for(int b=0; b<w; b++){
for(int k=0; k<3; k++){
newdata[i*step+j*channels+k]=t[(int)data[i*step+j*channels+k]];
}
}
}
cvNamedWindow("out");
cvNamedWindow("in");
cvShowImage("in",img);
cvShowImage("out",out);
system("pause");
}
여기 내 헤더
class image
{
public:
image();
const char* path;
void hhyper(const char*);
void histo(const char*);
IplImage* DrawHistogram(CvHistogram *hist, float scaleX, float scaleY);
int h,w,step,channels,i,j,;
int table[256];
uchar *data, *newdata;
해야입니까? –
런타임 오류 :/ – RedFox
배열이 너무 큽니까? 어떤 아이디어 야? – RedFox