双曲最终概率密度函数 Opencv
Hyperbolic final probability density function 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;
也许这个
newdata[i*step+j*channels+k] = t[(int)data[i*step+j*channels+k]];
应该是
newdata[i*step+j*channels+k] = t[(uchar)data[i*step+j*channels+k]];
相关文章:
- C++ OpenCV 卡尔曼滤波器构造函数错误
- 有没有一种代码密度较低的方法来使用非默认构造函数初始化数组?
- 如何将 c++ get 函数代码转换为 opencv 算法中使用的 python
- OpenCV imwrite 函数导致'undefined symbol'
- OpenCV 函数 cv::remap() 的执行时间更长,当程序在两者之间进入睡眠状态时
- 如果函数使用 OPENCV Mat 作为输入,如何编写头文件?
- C++ OpenCV Randu 函数抛出'Integer division by zero'
- C++中相同的CV函数(OpenCV)
- 如何读取uniform_int_distribution的概率质量函数?
- 如何输出特定值 x 处 gamma 分布的概率密度?在C++
- 将自适应阈值应用于范围函数 opencv c++
- 在 C++ 中定义和使用离散概率密度函数
- 双曲最终概率密度函数 Opencv
- 使用标准化函数/OPENCV和C 获取内存分配错误
- 将Mat传递给JNI函数-OpenCV
- 如何有效地处理不同的概率分布函数
- 删除Mat int函数(opencv)
- 我不能使用函数'OpenCV的放置文本
- 鼠标回调函数 OpenCV
- 多元正态密度函数在c++