Ask Your Question

Revision history [back]

click to hide/show revision 1
initial version

read multiple images from folder and concat, display images in single window opencv c++, visual studio 2010

Hi,I' m new to opencv c++, I need to concat multiple images and display it in single window. Here the source code i hv done,I m reading images from folder and resizing images to thumbnail size,Now i want to concat thumbnail sized multile images and copy into Big Image(Mat image). But my source code, multiple images are not concatinating, What's wrong with the code?..Pls help me...

FILE* f; using namespace cv; using namespace std; int main() { IplImage desimg,srcimg; Mat output,src,tumbnail1; srcimg=cvLoadImage("E:\images\img\b1.jpg",1); output=cvCreateMat(srcimg->width,srcimg->height,3);

      //load multiple images....................
 //File finding objects
struct _finddata_t c_file;

long hFile;
int value_max,value,height,width;
char imageDirectory[] = "E:\\images\\img";
char imageFileType[] = "jpg";
char fullImagePath[1000];
char buffer[1000];  
sprintf(buffer,"%s\\*.%s", imageDirectory, imageFileType);
hFile = _findfirst( buffer, &c_file );
 /*Check to make sure that there are files in directory*/
if( hFile == -1L )
    printf( "No %s files in current directory!\n", imageFileType );
else
{
    // List all files in directory
    printf( "Listing of files:\n" );
    // Loop through all images of imageFileType
    do
    {
        // Show file name
        printf( "\nOpening File: %s \n", c_file.name);

        sprintf(fullImagePath,"%s\\%s", imageDirectory, c_file.name);

    // Load image
        desimg = cvLoadImage(fullImagePath);

    Mat src1=cv::cvarrToMat(desimg); //convert ipl img to mat
    Mat src2=cv::cvarrToMat(srcimg);

    cv::Mat tumbnails2;

    tumbnail1=cvCreateMat(src1.rows/10,src1.cols/10,3);
    tumbnails2=cvCreateMat(src2.rows/10,src2.cols/10,3);

    cv::resize(src1, tumbnails2,tumbnails2.size());
    cv::resize(src2, tumbnail1,tumbnail1.size());
    //tumbnails1.push_back(tumbnails2);
     vconcat(tumbnail1,tumbnails2,output);



} while( _findnext( hFile, &c_file ) == 0 ); 

    // Close file finder object
    _findclose( hFile );
}

imshow("concatenation of multiple images",output);

waitKey(0);

return 0;

}

click to hide/show revision 2
No.2 Revision

read multiple images from folder and concat, display images in single window opencv c++, visual studio 2010

Hi,I' m new to opencv c++, I need to concat multiple images and display it in single window. Here the source code i hv done,I m reading images from folder and resizing images to thumbnail size,Now i want to concat thumbnail sized multile images and copy into Big Image(Mat image). But my source code, multiple images are not concatinating, What's wrong with the code?..Pls help me...

FILE* f;
using namespace cv;
using namespace std;
 int main()
 {
    IplImage desimg,srcimg;
*desimg,*srcimg;
    Mat output,src,tumbnail1;
    srcimg=cvLoadImage("E:\images\img\b1.jpg",1);
    output=cvCreateMat(srcimg->width,srcimg->height,3);

 srcimg=cvLoadImage("E:\\images\\img\\b1.jpg",1);
    output=cvCreateMat(srcimg->width,srcimg->height,3);

    //load multiple images....................
  //File finding objects
 struct _finddata_t c_file;

 long hFile;
 int value_max,value,height,width;
 char imageDirectory[] = "E:\\images\\img";
 char imageFileType[] = "jpg";
 char fullImagePath[1000];
 char buffer[1000];  
 sprintf(buffer,"%s\\*.%s", imageDirectory, imageFileType);
 hFile = _findfirst( buffer, &c_file );
  /*Check to make sure that there are files in directory*/
 if( hFile == -1L )
     printf( "No %s files in current directory!\n", imageFileType );
 else
{
    {   
        // List all files in directory
     printf( "Listing of files:\n" );
     // Loop through all images of imageFileType
    do
    {
    do  
        {   
            // Show file name
         printf( "\nOpening File: %s \n", c_file.name);

         sprintf(fullImagePath,"%s\\%s", imageDirectory, c_file.name);

     // Load image
         desimg = cvLoadImage(fullImagePath);

     Mat src1=cv::cvarrToMat(desimg); //convert ipl img to mat
     Mat src2=cv::cvarrToMat(srcimg);

     cv::Mat tumbnails2;

     tumbnail1=cvCreateMat(src1.rows/10,src1.cols/10,3);
     tumbnails2=cvCreateMat(src2.rows/10,src2.cols/10,3);

     cv::resize(src1, tumbnails2,tumbnails2.size());
     cv::resize(src2, tumbnail1,tumbnail1.size());
     //tumbnails1.push_back(tumbnails2);
      vconcat(tumbnail1,tumbnails2,output);

  } while( _findnext( hFile, &c_file ) == 0 ); 

);

        // Close file finder object
     _findclose( hFile );
 }

 imshow("concatenation of multiple images",output);
  waitKey(0);

 return 0;
}

}