cv::imshow("Result", result);未处理的异常
时间: 2023-07-19 17:02:57 浏览: 89
这个异常可能是由于以下几个原因引起的:
1. 代码中使用了 OpenCV 库中的 imshow 函数,但是没有先调用 namedWindow 函数创建对应的窗口。可以通过在 imshow 函数之前添加下面这行代码来创建窗口:
```cpp
cv::namedWindow("Result", cv::WINDOW_NORMAL);
```
2. 图像为空或者未成功加载。可以通过在 imshow 函数之前添加下面这行代码来判断图像是否为空:
```cpp
if (result.empty()) {
std::cout << "Error: Empty image." << std::endl;
return -1;
}
```
3. 窗口被关闭或者销毁。可以通过在 imshow 函数之前添加下面这行代码来判断窗口是否存在:
```cpp
if (cv::getWindowProperty("Result", cv::WND_PROP_AUTOSIZE) == -1) {
std::cout << "Error: Window closed." << std::endl;
return -1;
}
```
如果以上方法都没有解决问题,可以尝试重新编译代码或者检查 OpenCV 库是否正确安装。
相关问题
cv::Mat image = cv::imread("your_image.jpg"); cv::Mat mask = cv::Mat::zeros(image.size(), image.type()); cv::Mat result; cv::bitwise_not(mask, mask); cv::bitwise_and(image, mask, result); cv::imshow("Original Image", image); cv::imshow("Mask", mask); cv::imshow("Result", result); cv::waitKey(0);使用opencvsharp重写该代码
以下是使用OpenCvSharp重写的代码:
```csharp
using OpenCvSharp;
class Program
{
static void Main(string[] args)
{
Mat image = Cv2.ImRead("your_image.jpg");
Mat mask = Mat.Zeros(image.Size(), image.Type());
Mat result = new Mat();
Cv2.BitwiseNot(mask, mask);
Cv2.BitwiseAnd(image, mask, result);
Cv2.ImShow("Original Image", image);
Cv2.ImShow("Mask", mask);
Cv2.ImShow("Result", result);
Cv2.WaitKey(0);
}
}
```
请确保已经安装了OpenCvSharp NuGet包,并且已经引入了OpenCvSharp的命名空间。
cv2.imshow('result', img)
这行代码使用了 OpenCV 库中的 imshow 函数来显示图片。其中,'result' 是显示窗口的名称(可以自定义),img 是要显示的图片。该函数会创建一个新的窗口并在其中显示图片,直到用户关闭窗口为止。需要注意的是,在使用该函数前,需要使用 cv2.namedWindow 函数来创建一个窗口。示例代码如下:
```
import cv2
# 读取图片
img = cv2.imread('image.jpg')
# 创建窗口
cv2.namedWindow('result')
# 显示图片
cv2.imshow('result', img)
# 等待用户关闭窗口
cv2.waitKey(0)
# 销毁窗口
cv2.destroyAllWindows()
```