cpp:787: error: (-215:Assertion failed) !_img.empty() in function 'cv::imwrite'
时间: 2023-10-10 11:13:59 浏览: 368
这个错误通常是由于图像为空导致的。在 OpenCV 的 cv::imwrite 函数中,当传入的图像为空时会触发这个断言错误。要解决这个问题,你可以在调用 cv::imwrite 前先检查一下图像是否为空。例如:
```cpp
if (!_img.empty()) {
cv::imwrite("output.jpg", _img);
} else {
// 处理图像为空的情况
}
```
相关问题
loadsave.cpp:787: error: (-215:Assertion failed) !_img.empty() in function 'cv::imwrite'
这个错误通常是由于尝试将空图像保存到文件中引起的。这可能是由于读取图像时出现问题,或者在处理图像时出现问题。您可以尝试检查图像是否成功加载,或者检查在处理图像之前是否对其进行了正确的初始化。如果您使用的是OpenCV,您可以使用以下代码检查图像是否成功加载:
```python
import cv2
img = cv2.imread('image.jpg')
if img is None:
print('Failed to load image file')
else:
cv2.imshow('Image', img)
cv2.waitKey(0)
cv2.destroyAllWindows()
```
如果图像成功加载,则应该能够看到一个窗口显示图像。如果图像未成功加载,则会显示一条消息,指出加载失败。
OpenCV(4.7.0) /io/opencv/modules/imgcodecs/src/loadsave.cpp:783: error: (-215:Assertion failed) !_img.empty() in function 'imwrite'
这个错误通常是因为尝试保存一个空图像导致的。请确保在调用`imwrite()`函数之前,图像已经被成功加载并存储在一个非空的`Mat`对象中。如果图像加载失败或者加载后`Mat`对象为空,这个错误就会出现。你可以使用`imread()`函数来加载图像,可以在加载时检查是否成功,并确保图像不为空。
以下是一个示例代码:
```
#include <opencv2/opencv.hpp>
#include <iostream>
using namespace cv;
using namespace std;
int main()
{
Mat img = imread("path/to/image.jpg"); // 从文件加载图像
if (img.empty()) // 检查图像是否为空
{
cout << "Could not open or find the image!" << endl;
return -1;
}
// 进行图像处理
bool success = imwrite("path/to/output.jpg", img); // 保存图像
if (!success) // 检查是否保存成功
{
cout << "Failed to save the image!" << endl;
return -1;
}
return 0;
}
```
你可以根据自己的需求进行修改。希望能帮到你!
阅读全文