极智Coding | C++ 拖拽形式读取图像文件

欢迎关注我的公众号 [极智视界],获取我的更多笔记分享

  大家好,我是极智视界,本文介绍一下 C++ 拖拽形式读取图像文件方法

  这里介绍的方法主要是为了便于用 C++ 编写一些 demo,我觉得还是比较实用的,展现形式就是:工程编译后生成一个 exe 可执行程序 => 双击 exe 生成 cmd 窗口(如下) (待输入状态) => 拖拽文件到 cmd 窗口即可自动读取文件路径进行处理 => 处理完一轮后再次进入待输入状态,如此循环交互。这样就形成了一个简单的交互式 demo 模版,既可以交互处理图像文件,也可以交互处理视频文件、文本文件等。下面来看看代码 (要用的话基本可以照搬就行,可以当做一个模版框架使用,读取后处理方式自定义就行了)。
极智Coding | C++ 拖拽形式读取图像文件_第1张图片

文章目录

    • 1. C++ 拖拽形式读取图像文件
    • 2. C++ 拖拽形式读取视频文件

1. C++ 拖拽形式读取图像文件

int main()
{
    char file_name[1024];
    char *filename;
again:
    _flushall();
    printf("\n Input filename:");
    fgets(file_name, sizeof(file_name), stdin);
    filename = &file_name[0];
    if(strlen(file_name) && file_name[strlen(file_name) - 1] == '\n')
    {
        if(filename[0] == '"')
    {
        file_name[strlen(file_name) - 2] = 0;
        filename++;
    }
    else
        file_name[strlen(file_name) - 1] = 0;
    }
  	// 开始处理图片数据
    cv::Mat templ;
    templ = imread(filename, 1); 
    if(templ.empty())
    {
        goto again;
    }
    // 自定义处理图片数据
    ...
    ...
    ...
    goto again;
    return 0;
}

2. C++ 拖拽形式读取视频文件

int main()
{
    char file_name[1024];
    char *filename;
again:
    _flushall();
    printf("\n Input filename:");
    fgets(file_name, sizeof(file_name), stdin);
    filename = &file_name[0];
    if(strlen(file_name) && file_name[strlen(file_name) - 1] == '\n')
    {
        if(filename[0] == '"')
    {
        file_name[strlen(file_name) - 2] = 0;
        filename++;
    }
    else
        file_name[strlen(file_name) - 1] = 0;
    }
    // 开始处理视频数据
		cv::VideoCapture cap(filename);
    cv::Mat templ;
    while(cap.isOpened())
    {
      cap >> templ;
      if(templ.empty())
   		 {
         goto again;
    	 }
      // 自定义处理视频帧
    }
    ...
    ...
    ...
    goto again;
    return 0;
}

  好了,以上介绍了 C++ 拖拽形式读取图像文件方法,还是很实用的。希望我的分享能对你的学习有一点帮助。


 【极智视界】

《极智Coding | C++ 拖拽形式读取图像文件》


在这里插入图片描述

搜索关注我的微信公众号【极智视界】,获取我的更多经验分享,让我们用极致+极客的心态来迎接AI !

你可能感兴趣的:(极智编程,c++,计算机视觉,图像处理,cmd,交互式)