Mat img = imread(“box.png”,1);
Mat img = cvLoadImage(“box.png”,1);
当我尝试前一个时,项目无法加载文件,但是当我使用后者时,它确实如此。所以..和box.png在项目文件夹中。你能帮我解决我的imread有什么问题吗?或者我应该添加box.png所在的目录?
我试图制作的是这段代码从图像中拉出mser区域。当编译器无法加载图像文件时,运行代码时出现错误,即使我已将 imread 更改为 cvLoadImageM ,代码也停止在
ms(框,区域,Mat());
所以我做错了什么????????这里
#include <stdio.h>
#include <iostream>
#include <vector>
//#include <string.h>
#include "opencv\cv.h"
#include "opencv2/core/core.hpp"
#include "opencv2/features2d/features2d.hpp"
#include "opencv2/imgproc/imgproc.hpp"
#include "opencv2/highgui/highgui.hpp"
#include "opencv2/calib3d/calib3d.hpp"
#include <opencv2/opencv.hpp>
using namespace std;
using namespace cv;
int main()
{
Mat box = imread("01a.png",1);
if(box.empty())
{
fprintf(stderr, "Can not load image" );
return -1;
}
MSER ms;
vector<vector<Point>> regions;
ms(box, regions, Mat());
for (int i = 0; i < regions.size(); i++)
{
ellipse(box, fitEllipse(regions[i]), Scalar(255));
}
imshow("mser", box);
waitKey(0);
return 0;
}
答案 0 :(得分:1)
昨天我遇到了同样的问题,我找到了解决方案。确保所使用的opencv库与每个opencv库的构建模式(例如Release - &gt; cvcore242.lib(dll)Debug - &gt; cvcore242d.lib(或dll))匹配。确保更改项目deps-&gt; linker-&gt;依赖项以加载正确的(调试或发布)opencv库。
另一种方法是切换构建模式Debug&lt; - &gt;发布但我想你想用适当的opencv库设置每个构建模式,从长远来看。
答案 1 :(得分:0)
imread()是新OpenCV C ++接口的一部分,与Mat结构一起使用。 cvLoadImage()是一个返回IplImage *(指向IplImage的指针)的C函数
答案 2 :(得分:0)
- Mat box = imread("01a.png",1);
+ IplImage* pBox = cvLoadImage("01a.png");
+ Mat box = pBox;
这个代码对我来说很好,两种方式都可以完成图像的完整路径
"C:\\Users\\noob\\Pictures\\01a.png"
答案 3 :(得分:0)
所以,imread失败了,你试图用cvLoadImage解决这个问题?呸,不,不要那样做。
请检查,如果你正在混合调试&amp;发布代码,例如链接到发布版本的* d.libs或其他方式。它很可能与那个相关