Warning: file_get_contents(/data/phpspider/zhask/data//catemap/6/cplusplus/135.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C++ + OpenCV 2.4:如何均衡IPLIMAGE *类型?_C++_Opencv_Mat_Iplimage - Fatal编程技术网

C++ + OpenCV 2.4:如何均衡IPLIMAGE *类型?

C++ + OpenCV 2.4:如何均衡IPLIMAGE *类型?,c++,opencv,mat,iplimage,C++,Opencv,Mat,Iplimage,我写这个函数是为了均衡一个IplImage*类型,但是每次我启动这个程序它都会中断 < op> VC++中的未处理异常:OpenCMP+OpenMP+MistSyTest.EXE:微软C++异常:CV::内存位置0x00 B8E6C0. 请帮助我正确转换IplImage->Mat->IplImage #include <opencv/cv.h> #include <opencv/highgui.h> using namespace std; void equalize

我写这个函数是为了均衡一个IplImage*类型,但是每次我启动这个程序它都会中断

< op> VC++中的未处理异常:OpenCMP+OpenMP+MistSyTest.EXE:微软C++异常:CV::内存位置0x00 B8E6C0. 请帮助我正确转换IplImage->Mat->IplImage

#include <opencv/cv.h>
#include <opencv/highgui.h>

using namespace std;

void equalizeHistogramm(IplImage* img){
IplImage* buf = cvCloneImage(img);
cv::Mat mat(img);
cv::Mat buf1(img);
cv::equalizeHist(mat, buf1);
IplImage buf2 = buf1;
img = &buf2;}

您不应该在代码中使用IplImages。请坚持使用cv::Mat。但我必须处理的图像是在IplImage中。我不能完全不使用IplImage,在6行代码中已经有3个错误:a您给输入img添加了别名,因此您无法在之后正确释放它b您分配了一个局部变量的地址,在您离开函数3cv::Mat buf1后该地址将无效,因此您的数据将无效。-再一次,请把它全部扔掉。事实上,这个函数它是一个糟糕的代码,我知道它是我写了大约一周的一个大项目的一部分。所以,请帮我转换一下,这是唯一的办法。可能是,一些教程或教程?如果您的输入是cv::Mat,而您的输出是空的cv::Mat,那么它只是cv::equalizeHistsrc,dst;你甚至不需要一个函数。最好清理剩下的代码。