1. int main(int argc,char* argv[])详解
argc记录了用户在运行程序的命令行中输入的参数的个数。
arg[]指向的数组中至少有一个字符指针,即arg[0].他通常指向程序中的可执行文件的文件名。在有些版本的编译器中还包括程序
文件所在的路径。
#include <iostream> #include <string> #include <sstream> using namespace std; // OpenCV includes #include "opencv2/core.hpp" #include "opencv2/highgui.hpp" using namespace cv; int main( int argc, const char** argv ) {
//argv[1]第一个参数是图像名
Mat color = imread(argv[1]); Mat gray = imread(argv[1], IMREAD_GRAYSCALE); ///以灰度图的形式读取图像
///判断图像是否为空 if(! color.data ) // Check for invalid input { cout << "Could not open or find the image" << std::endl ; return -1; } // Write images 将读取的灰度图像写入本地 imwrite("lenaGray.jpg", gray); // Get same pixel with opencv function int myRow=color.cols-1; int myCol=color.rows-1;
///通过color.at 获取三通道的图像对应的像素点的灰度值 auto pixel= color.at<Vec3b>(myRow, myCol); cout << "Pixel value (B,G,R): (" << (int)pixel[0] << "," << (int)pixel[1] << "," << (int)pixel[2] << ")" << endl; // show images // imshow("Lena BGR", color); imshow("Lena Gray", gray); // wait for any key press waitKey(0); return 0; }
2.如何在window 环境中执行该任务。
(1)ctrl+r进入控制台窗口,输入cd /d + exe所在的路径,进入exe所在文件夹
(2) 根据实际参数个数 输入 ***.exe+参数1+参数2 然后回车
3.但是无法在vs2017直接查看debug,因此还是要vs2017中设置
点击项目——右键属性——调试——命令行参数(lena.jpg)
设置对应的项目路径为 .Debug ,这里是相对路径注意
调试程序,可以进入断点啦