cv::resize 引发的异常 c++
时间: 2023-07-15 17:15:20 浏览: 520
cv::resize 函数在缩放图像时可能会引发异常,常见的异常有以下几种:
1. cv::Exception:当输入图像为空或输出图像为空时,会抛出该异常。
2. cv::Error:当缩放系数小于或等于 0 时,会抛出该异常。
3. cv::Exception:当输出图像大小超过了可用内存时,会抛出该异常。
以下是一个简单的缩放图像的示例代码:
```
#include <opencv2/opencv.hpp>
#include <iostream>
using namespace cv;
using namespace std;
int main(int argc, char** argv)
{
Mat image = imread("test.jpg", IMREAD_COLOR);
if (image.empty())
{
cout << "Could not open or find the image" << endl;
return -1;
}
Mat resizedImage;
try
{
resize(image, resizedImage, Size(640, 480));
}
catch (cv::Exception& e)
{
cout << "OpenCV exception: " << e.what() << endl;
return -1;
}
catch (std::exception& e)
{
cout << "Standard exception: " << e.what() << endl;
return -1;
}
catch (...)
{
cout << "Unknown exception" << endl;
return -1;
}
imshow("Original Image", image);
imshow("Resized Image", resizedImage);
waitKey(0);
return 0;
}
```
在上面的代码中,我们首先使用 imread 函数加载一张测试图片。然后,我们使用 resize 函数将图片缩放为 640x480 大小。如果 resize 函数引发异常,我们将捕获它并打印错误消息。最后,我们使用 imshow 函数显示原始图像和缩放后的图像,并等待用户按下键盘上的任意键关闭窗口。
阅读全文