我计算一张图片的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