imread() 仍然返回空垫子,尽管在 openCV 4.0.0 中寻址正确
imread() still returns empty mat despite correct addressing in openCV 4.0.0
我是OPENCV的新手。 现在我正在尝试使用 imread(( 显示图像,但 imread(( 不起作用(继续返回空垫子(。但是当我尝试通过 imread(( 绘制线条、圆圈等时,它运行良好。
所以我认为解决会有问题。我尽我所能,但仍然不起作用。 而且我也用谷歌搜索了很多东西来解决它,但我无法得到这个问题的答案。
我该怎么办?我错过了什么问题吗?
我目前使用 Windows 10、Visual Studio 2017 和 openCV 4.0.0 alpha。
这是我的代码。
#include <iostream>
#include <opencv2/opencv.hpp>
#ifdef _DEBUG
#pragma comment(lib,"opencv_world400d.lib")
#else
#pragma comment(lib,"opencv_world400.lib")
#endif
using namespace std;
using namespace cv;
int main()
{
Mat image;
image =imread("C:/Users/ymin/source/repos/Project1/Project1/BENZ.bmp",IMREAD_ANYCOLOR);
if (image.empty())
{std::cerr << "Could not open file" << std::endl; return (1);}
imshow("image", image);
waitKey();
return 0;
}
来自 OpenCV 文档的imread
:
如果无法读取图像(由于缺少文件、权限不正确、格式不受支持或无效(,该函数将返回一个空矩阵。
这表明该文件不存在(可能是错别字?(,您没有读取它的权限,它的格式无法被OpenCV识别,或者它已损坏。
确保文件位于您认为的位置,并且可读,并且 OpenCV 经过编译以支持文件的任何格式。
(请注意,文件扩展名不能决定其格式,您可以获取 JPEG 文件并将其重命名为具有.bmp
扩展名,但它仍然是 JPEG 文件。
相关文章:
- 从结构寻址时,MMAP变量的行为很奇怪
- 字节真的是最小可寻址单元吗
- 具有两个间接寻址运算符 (C++) 的函数参数的用途
- imread() 仍然返回空垫子,尽管在 openCV 4.0.0 中寻址正确
- 在具有开放寻址的哈希表中插入节点 [优化逻辑]
- 如何像在 C++ 中处理数组一样对 .txt 文件中的字符进行寻址?
- C++11右值引用寻址
- 对堆栈增长和寻址的困惑
- C++ std::find() 寻址返回向量的类函数时的意外行为
- 间接寻址运算符如何返回带有运算符重载的指针地址
- Adafruit NeoPixel库在寻址超过7个LED灯条时不起作用
- 在模板 SFINAE 约束中使用间接寻址级别会导致硬错误
- 错误:使用索引寻址和 Clang 的指令的操作数无效
- 是否可以寻址另一个网络中的服务器/客户端套接字?(C++)
- C++中的字节寻址算法
- 指针声明和间接寻址之间的区别
- 仅在使用间接寻址时调用虚函数 — 经典的早期绑定问题?
- C++ std::map 不同的键寻址同一索引
- Valgrind 错误:系统调用参数 epoll_pwait(sigmask) 指向不可寻址的字节
- 内联lambda是否遭受与函数指针间接寻址相同的延迟