#include "highgui.h" int main( int argc, char** argv ) { IplImage* img = cvLoadImage(argv[1]); //注意cvLoadImage()有三个参数 cvNamedWindow("Example1", CV_WINDOW_AUTOSIZE ); cvShowImage("Example1", img ); cvWaitKey(0); cvReleaseImage( &img ); cvDestroyWindow("Example1"); return 0;
这是《学习OpenCV》书里面第一个例程,每个函数都有详细的解释,我不在赘述。
我碰到的问题是:在Xcode里面代码没有问题,但是显示不出图片。Google了好久,发现是cvLoadImage[1]这个函数的问题,这个函数需要两个参数[1]:cvLoadImage( const char* filename, int iscolor CV_DEFAULT(CV_LOAD_IMAGE_COLOR)),具体看引用这个网址,讲的很详细了,这是这个函数用法,明白了之后,图片还是没有运行出来。然后在Google上找到原因,这是个命令行程序,程序编译连接生成可执行文件之后,要到终端输入两个main函数需要的参数才能执行出来。一个参数是程序生成的可执行文件,另一个是图片绝对地址。详见引用[2]
到这里我要做的是找到Xcode生成的可执行文件,一般Xcode默认可执行文件统一生成到系统文件夹下面,我在Xcode->Preferences中修改了默认项,让每个可执行文件生成到项目文件夹中。方法参考引用[3]
最后,找到图片绝度路径,最快的是直接把图片拖进终端,即可看到图片绝对路径。然后在终端输入:程序在Xcode中生成的可执行文件的路径 图片路径。即可输出我们想要的图片
引用:
[1] https://blog.csdn.net/hujingshuang/article/details/47184717
[2] https://stackoverflow.com/questions/15356513/opencv-sample-code-run-time-error-using-argv