opencv关于canny算子的程序中,怎样改才能使下面程序的argc参数=2并读 ...
发布网友
发布时间:2024-03-04 10:42
我来回答
共4个回答
热心网友
时间:2024-08-05 04:11
argc 命令行参数个数 argv 命令行参数排列
例如在运行->CMD,也就是DOS命令行里面输入 candy.exe image.jpg 的话,就是2个参数所以 argc=2,argv是一个字符型的数组所以 argv[0]="candy.exe" , argv[1]="image.jpg"
这两个参数如果都是文件的话,要用绝对地址,把文件拖到DOS窗口就会自动生成地址了。
其实没必要这么麻烦,只需要你把图片放到Debug的文件夹里,然后把图片拖到exe的执行文件上,就可以执行了。
当然我们更喜欢这种写法
char* filename = argc == 2 ? argv[1] : (char*)"lena.jpg";
if( pImg = cvLoadImage( filename, 0)) == 0 )
return -1;
热心网友
时间:2024-08-05 04:08
你好,其实你的程序没有问题,在visual studio中运行(需要添加#include "stdafx.h")后会在工程文件夹中生成一个exe文件,把需要处理的图片放到与exe文件同目录的文件夹中,然后在DOS中进入该exe文件的目录,并运行该exe程序即可(输入exe文件名+空格+需要处理的图片名称)。希望这些对你会有所帮助。
热心网友
时间:2024-08-05 04:08
刚回答了一个类似的,直接把我刚才的回答粘过来~
这个需要用命令行来执行,给程序传3个参数,教你一个简单方法,你的程序编译以后会在这个项目的debug文件夹下生一个.exe应用程序,你把你想要处理的图片直接拖到这个exe程序上面,程序就会自动运行了~或者cvload的时候指定要打开的文件名也可以类似于这样src=cvLoadImage("测试图.bmp", 0);这个图要放在项目文件夹下否则就要加上路径,但是你要处理别的图片就要改程序,我觉得还是第一种方法方便~
热心网友
时间:2024-08-05 04:16
直接把这一句注释掉:
if( argc == 2 &&
(pImg = cvLoadImage( argv[1], 0)) != 0 )
加一句
pImg = cvLoadImage( "test.jpg", 0); //test.jpg是你要打开的图像