如何使用highgui(opencv)读取多个图像

时间:2016-07-15 08:38:06

标签: c++ opencv

我正在开发一个程序来显示批量图像并在点击图像的选定位置时进行记录。

我想加载一组图片(按增量顺序命名) 在前一个关闭后打开它。

我想要一步一步的程序: 包含按顺序命名的一批图像的文件(包括JPEG,TIFF和PNG格式)。 例如IMG_00000001.JPG到IMG_00000003.JPG ......

当我运行程序时,它将显示第一张图像(IMG_00000001.JPG) 然后我将点击图像,cmd将显示我点击的位置。 关闭窗口后,将显示下一个图像(IMG_00000002.JPG)。 继续,直到文件夹中的最后一个图像。

非常感谢!!过去几周我一直在网上搜索,有一些例子,但每次运行时都会出错,我很沮丧,绝望的回答!

这是我的代码

 #include "opencv2/highgui/highgui.hpp"
#include <iostream>

using namespace std;
using namespace cv;

void CallBackFunc(int event, int x, int y, int flags, void* userdata)
{
     if  ( event == EVENT_LBUTTONDOWN )
     {
          cout << "Clicked position is:  (" << x << ", " << y << ")" << endl;
     }         
}


int main(int argc, char** argv)
{
     // Read image from file 
     Mat img = imread("cube_0.JPG");
     Mat img1 = imread("cube_1.JPG");

      //if fail to read the image
     if ( img.empty() ) 
     { 
          cout << "Error loading the image" << endl;
          return -1; 
     }

      //Create a window
     namedWindow("My Window", 1);

      //set the callback function for any mouse event
     setMouseCallback("My Window", CallBackFunc, NULL);

      //show the image
     imshow("My Window", img);

      // Wait until user press some key
     waitKey(0);

      return 0;
}

0 个答案:

没有答案