MFC用一张图片与多张图片进行对比

我计算一张图片的Hash值,然后计算一个文件夹下所有图片的Hash值,将它放入List里面,最后用FOR循环遍历,但是一直没有结果。下面是代码,请大佬们帮忙指正:

int index = 0;    //用于列表索引
 
 
IplImage *image1 = (IplImage *)&IplImage(srcImg);
IplImage *image2 = (IplImage *)&IplImage(targetImg);
 
 
string imgPrint1 = ImageHashValue(image1);
string imgPrint2 = ImageHashValue(image2);
 
double similarity1;
 
list<string> list1;
for (int i = 0; i < imgPrint2.length(); i++) 
{
    list1.push_back(imgPrint2); 
    similarity1 = ImageSimilarity(imgPrint1, imgPrint2);
}
list<double> list2;
for (int j = 0; j < imgPrint2.length(); j++)
{
    similarity1 = ImageSimilarity(imgPrint1, imgPrint2);
    list2.push_back(similarity1);
    m_List.SetItemText(index, j, _T("similarity1"));                // 相似度    // 更新
    index++;
} 

 

不是太明白你写的意思,第14-18行的循环干了啥?为什么遍历imgPrint2的长度呢?

看看m_List.SetItemText(index, j, _T("similarity1"));这句的返回值,是不是失败了。SetItemText的作用是设置列表项的文本,但是如果列表项都不存在,那么就会失败。所以,你应该先判断列表项是否存在,不存在就用InsertItem添加一个。

您好,我是有问必答小助手,您的问题已经有小伙伴解答了,您看下是否解决,可以追评进行沟通哦~

如果有您比较满意的答案 / 帮您提供解决思路的答案,可以点击【采纳】按钮,给回答的小伙伴一些鼓励哦~~

ps:问答VIP仅需29元,即可享受5次/月 有问必答服务,了解详情>>>https://vip.csdn.net/askvip?utm_source=1146287632