怎么利用OpenCV的cvLoadImage()加载一个文件夹里的多幅图片,循环语句怎么写?

 我来答
百度网友96ffcf7
推荐于2016-04-18 · 知道合伙人互联网行家
百度网友96ffcf7
知道合伙人互联网行家
采纳数:22721 获赞数:118725
从事多年网络方面工作,有丰富的互联网经验。

向TA提问 私信TA
展开全部
char filename[100];
char windowname[100];
IplImage* pScr;
unsigned char *Readfigsmethod1(int num)// 读入num个图片
{
for(int i=1;i<=num;i++)
{
sprintf(filename,"D:/test/%d.jpg",i);// 将图片以数字命名:例如1.jpg 2.jpg等,放入D:/test/文件夹下
sprintf(windowname,"window%d.jpg",i);
pScr=cvLoadImage(filename,1);//导入图片
cvNamedWindow(windowname,CV_WINDOW_AUTOSIZE);
cvShowImage(windowname,pScr);//显示图片
//cvWaitKey(0);

}
cvWaitKey(0);
cvReleaseImage(&pScr);//释放图片
cvDestroyAllWindows();//销毁窗口

return 0;
}

注释:连续读取图片主要问题在于filename指向图片目录, sprintf(filename,"D:/test/%d.jpg",i)的使用可以使得filename可以从1.jpg,2.jpg,一直到num.jpg. filename=D:/test/i.jpg.
小左boy
2012-09-15 · 超过21用户采纳过TA的回答
知道答主
回答量:191
采纳率:0%
帮助的人:79.4万
展开全部
最好是把文件名全部读到一个txt文件里 当然你也可以自己打进去。然后读取txt 中的每一行,这里的每一行是一个路径加图片名,在用cvloadimage 读这一行的string 或char[] .参考人脸识别的那个程序开头 read_csv,
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
竹叶观察
推荐于2016-01-24 · 超过28用户采纳过TA的回答
知道答主
回答量:110
采纳率:0%
帮助的人:70.8万
展开全部
for (int count=1;count<=100;count+=1)
{
char img_name[100];
sprintf(img_name,"D://%d.jpg",count);
IplImage * result=cvLoadImage(img_name,0);
}
多幅图片要顺序命名
追问
如果要把几幅图片相互比较相似度,循环改怎么写?假如是比较4副图片
追答
设置不同的路径,或者设置不同图片名,对读入的循环中比较啊 ,有上面的代码,你应该能改出来的
本回答被提问者采纳
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
收起 更多回答(1)
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式