C++ OpenCV C++;使用cvSaveImage时出错错误:在cv::\u InputArray::TYPE中断言失败((标志和固定类型)!=0)
我是OpenCV的新手。在本例中,我尝试在进行一些处理后使用cvSaveImage保存图像,但抛出了此错误 cv::\u InputArray::TYPE,文件C:\build\master\u winpack-build-win64-vc14\opencv\modules\core\src\matrix\u wrap.cpp,第807行,断言失败((标志和固定类型)!=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**
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;
}