我试图运行这个简单的OpenCV程序,但我得到了这个错误:
第一个月
代码:
#include <iostream>
#include <opencv2/opencv.hpp>
using namespace std;
int main()
{
cout << "Hello World!" << endl;
cv::Mat inputImage = cv::imread("/home/beniz1.jpg");
cv::imshow("Display Image", inputImage);
return 0;
}
此错误的原因是什么?
7条答案
按热度按时间yc0p9oo01#
此错误意味着您试图显示空图像。当您使用
imshow
加载图像时,这通常是由以下原因导致的:1.映像的路径错误(在Windows中转义两次目录分隔符,例如
imread("C:\path\to\image.png")
应该是:imread("C:\\path\\to\\image.png")
,或imread("C:/path/to/image.png")
);1.图像扩展名错误(例如.jpg与.jpeg不同);
1.您没有访问该文件夹的权限。
排除其他问题的一个简单的解决方法是将图像放在项目目录中,然后简单地将文件名(
imread("image.png")
)传递给imread
。记住添加
waitKey();
,否则您将看不到任何内容。您可以检查图像是否已正确加载,如下所示:
jq6vz3qz2#
通常这意味着你的图像不在那里,这是一个基本的Assert,用于在实际显示之前检查内容是否可以在窗口中显示,顺便说一下,你需要创建一个窗口,以便显示名为Window(“name”)然后imshow(“name”,image)的图像;
y0u0uwnf3#
我遇到了完全相同的问题,只是在Raspbian。经过几个小时的尝试,解决方案相当简单,我不得不省略文件扩展名。
scyqe7ek4#
我在Ubuntu中使用Qt Creator时也遇到了同样的错误,图片在项目文件夹中,所以我认为没有必要给予完整的路径。
第一个月
我得到的错误是:
通过提供完整路径解决了错误:
img = imread("home/vivek/QT_ImageProcessing/IP_HomeWork1/baboon.png");
vm0i2vca5#
仔细检查你的路径到一个图像
gcmastyq6#
最有可能的是,您没有使用正确的路径到您的图像或它的格式.如果您使用的是windows:img =cv2.imread(“C:/用户/动画/图片/IMG_4514.jpg”)
eiee3dmh7#
只需将图像添加到项目目录文件夹中。
方法:
1-在默认情况下位于左侧的搜索解决方案资源管理器中右键单击项目名称。
2-单击在文件资源管理器中打开文件夹
3-将图像粘贴到该文件夹
那么