批量读取图像的问题
(1) 如果是已知图像所在位置并且图像名称是有规律的,类似于001.jpg,002.jpg.........的,则通过一个循环就可以读进来,比如上面的例子,读取时的程序师这样的:
for i=0:9  
  gi=imread(strcat('newg', num2str(i),'.jpg'));
G(:,:,i+1)=gi; 
end上面是用matlab做的,,请教一下,用VC怎么实现?

解决方案 »

  1.   

    下面是我的一个工程程序,你借鉴一下吧~void CBmp_aviDlg::On_aviName() 
    {
    UpdateData(TRUE);
    if(check == false)
    {
    AfxMessageBox("检测数据!");
    return;
    }
    if(m_bmpcreate == false)
    {
    AfxMessageBox("指定bmp文件夹!");
    return;
    }
    if (m_aviname==_T(""))
    {
    AfxMessageBox("请输入avi文件名!");
    return;
    } //重点是下面这段程序
    //存avi在bmps文件目录下面
    aviTemp=m_bmppath+"\\"+m_aviname;
    m_aviname=aviTemp+".avi";
    //create avi file
    done = bmp_avi(m_aviname,bmpTemp);
    //是否创建好avi文件
    aviTemp=m_aviname;
    //clear aviname
            m_aviname="";
    m_ActiveMovie.SetFileName(aviTemp);
    UpdateData(FALSE);
            AfxMessageBox("avi can play");
    }
      

  2.   

    for i=0:9   
      gi=imread(strcat('newg', num2str(i),'.jpg'));
    for(int i=0; i<10; i++)
    {
        CString sFileName;
        sFileName.Format("newg%03d.jpg",i);
    }
      

  3.   

    先预留一个保存文件名的串
    char name[MAXPATH];然后char tmp[] = _T("D:\XXX\XXXXX%d.jpg");在循环里面
    sprintf(name,tmp,i); 这样每次循环都能在name里面得到一个顺序增加的文件名。