我想调整图像大小,当图像是 IplImage 时,下面的代码可以工作,但是当我将其更改为 Mat 时,我收到以下错误:
- 无法将“cv::Mat::深度”从“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 函数,这些函数通常更不容易出错。
如果您需要指定纵横比或差异插值,请参阅http://docs.opencv.org/2.4/modules/imgproc/doc/geometric_transformations.html#void%20resize(InputArray%20src,%20 OutputArray%20dst,%20Size%20dsize,%20double%20fx,%20 double% 20fy,%20 int%20 插值)
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)