我正在制作一个C程序,我需要从中获取程序启动的目录.该程序是为UNIX计算机编写的.我一直在寻找opendir()和telldir(),但telldir()返回off_t (long int),所以它确实没有帮助我.
如何在字符串(char数组)中获取当前路径?
我有一些C++代码,除了函数之外,OpenCV的一切都运行良好imread(file).它正确找到文件并加载名称,但它没有加载任何数据.
Mat pattImage = imread(fileName, 0);
Run Code Online (Sandbox Code Playgroud)
在网上进行了一些研究后,我意识到我处于调试模式,但是发布了OpenCV库,而不是调试版.
debug library: opencv_core231d.lib
release library: opencv_core231.lib
Run Code Online (Sandbox Code Playgroud)
虽然这是一个典型的愚蠢错误,我认为这不应该做任何事情,调试库应该允许OpenCV代码调试,而发布库允许更快地执行代码,但我不明白为什么imread失败.
谁能解释一下OpenCV中调试和发布库之间的区别以及为什么会出现这个错误?
它是OpenCV的错误吗?
我正在尝试为OpenCV制定一个简单的hello世界,但是为什么它不起作用的想法已经用完了.
当我编译并运行此代码时:
#include <cv.h>
#include <highgui.h>
int main(int argc, char* argv[])
{
IplImage* img = cvLoadImage( "myjpeg.jpg" );
cvNamedWindow( "MyJPG", CV_WINDOW_AUTOSIZE );
cvShowImage("MyJPG", img);
cvWaitKey(0);
cvReleaseImage( &img );
cvDestroyWindow( "MyJPG" );
return 0;
}
Run Code Online (Sandbox Code Playgroud)
我得到一个大约200x200的灰色框而不是指示的.jpg文件.如果我使用不同的jpg,我会得到相同类型的窗口,如果我输入一个无效的文件名,我会得到一个非常小的窗口(预期).
我在Windows 7 Professional下使用Visual Studio 2008.
大多数示例程序似乎工作正常,所以我更加困惑的是,代码如何加载样本jpgs就好了,但在上面的代码中它不起作用(甚至试过样本jpeg).
通过编译生成的可执行文件工作正常,但是每当我尝试运行调试器时,Visual Studio 2008调试器都会将空指针加载到img中 - 无论文件位置是隐式还是显式.