我想调整图像的大小,当图像是 IplImage 时,下面的代码可以工作,但是当我将它更改为 Mat 时,出现以下错误: - 无法将“cv::Mat::depth”从类型“int (cv::Mat::)() const”转换为类型“int”。 - 无法将参数“1”的“cv::Mat”转换为“const CvArr* {aka const void*}”到“void cvResize(const CvArr*, CvArr*, int)”。
Mat image=imread("21.png", CV_LOAD_IMAGE_GRAYSCALE);
Mat dst;
dst= cvCreateImage(cvSize(150,150),image.depth,image.channels());
cvResize(image, dst);
namedWindow("Source", CV_WINDOW_AUTOSIZE );
imshow("Source", image);
namedWindow("resize", CV_WINDOW_AUTOSIZE );
imshow("resize", dst);
waitKey(0);
return 0;
有人可以帮帮我吗?
最佳答案
使用 C++ API 语法(当前您使用的是 C api):
cv::Mat image = cv::imread("21.png", CV_LOAD_IMAGE_GRAYSCALE);
cv::Mat dst;
cv::resize(image, dst, cv::Size(150,150));
cv::namedWindow("Source", CV_WINDOW_AUTOSIZE );
cv::imshow("Source", image);
cv::namedWindow("resize", CV_WINDOW_AUTOSIZE );
cv::imshow("resize", dst);
waitKey(0);
如果不需要,请不要再使用旧的 C api cvMethodname 函数。而是使用通常不太容易出错的 cv::Methodname 函数。
关于c++ - 调整图像类型 "Mat"opencv C++,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/42625621/