C++ OpenCV C++;使用cvSaveImage时出错错误:在cv::\u InputArray::TYPE中断言失败((标志和固定类型)!=0)

C++ OpenCV C++;使用cvSaveImage时出错错误:在cv::\u InputArray::TYPE中断言失败((标志和固定类型)!=0),c++,opencv,image-processing,C++,Opencv,Image Processing,我是OpenCV的新手。在本例中,我尝试在进行一些处理后使用cvSaveImage保存图像,但抛出了此错误 cv::\u InputArray::TYPE,文件C:\build\master\u winpack-build-win64-vc14\opencv\modules\core\src\matrix\u wrap.cpp,第807行,断言失败((标志和固定类型)!=0) 似乎它在输入数组的类型上有一些问题,但我不知道为什么 下面是我的代码 int main(int argc, char**

我是OpenCV的新手。在本例中,我尝试在进行一些处理后使用cvSaveImage保存图像,但抛出了此错误

cv::\u InputArray::TYPE,文件C:\build\master\u winpack-build-win64-vc14\opencv\modules\core\src\matrix\u wrap.cpp,第807行,断言失败((标志和固定类型)!=0)

似乎它在输入数组的类型上有一些问题,但我不知道为什么

下面是我的代码

int main(int argc, char** argv) {

    IplImage* img = cvLoadImage("HOLES_CAM1_NG.bmp", CV_LOAD_IMAGE_GRAYSCALE);
    IplImage* houghImg = cvCloneImage(img);

/*

    SOME PROCESSING

                      */

    cvSaveImage("HOLES_CAM1_NG_processed.png", houghImg);


    cvReleaseImage(&img);
    cvReleaseImage(&houghImg);
}

您正在使用不推荐使用的C API

请尝试这样做: 参考:

#包括
#包括
#包括
#包括
使用名称空间cv;
int main(int argc,字符**argv)
{
Mat-img;
img=imread(“HOLES\u CAM1\u NG.bmp”,CV\u LOAD\u IMAGE\u GRAYSCALE);
如果(!img.data)
{
printf(“无图像数据”);
返回-1;
}
/*
一些加工
*/
imwrite(“HOLES_CAM1_NG_processed.png”,houghImg);
namedWindow(“原始图像”,CV\u窗口\u自动调整大小);
namedWindow(“灰色图像”,CV_窗口_自动调整大小);
imshow(“原始图像”,img);
imshow(“Hough图像”,houghImg);
等待键(0);
返回0;
}

<代码> > p> > CVSAVIEMIVER()不工作,最好像CVCOPEMIVEN::)你声称使用C++,所以请使用C++ OpenCV API,而不是古旧的、不兼容的C API。好处之一是不必处理原始指针。
#include <cv.h>
#include <highgui.h>
#include <opencv2/imgproc/imgproc.hpp>
#include <stdio.h>

using namespace cv;

int main( int argc, char** argv )
{
 Mat img;
 img = imread( "HOLES_CAM1_NG.bmp", CV_LOAD_IMAGE_GRAYSCALE );

 if(!img.data )
 {
   printf( " No image data \n " );
   return -1;
 }
/*

SOME PROCESSING

                  */
 imwrite( "HOLES_CAM1_NG_processed.png", houghImg );

 namedWindow( "Original image", CV_WINDOW_AUTOSIZE );
 namedWindow( "Gray image", CV_WINDOW_AUTOSIZE );

 imshow( "Original image", img );
 imshow( "Hough image", houghImg );

 waitKey(0);

 return 0;
}