使用图像直方图方式搜索相似图片

本文介绍如何使用图像直方图进行相似图片搜索。通过比较图像直方图,实现基于内容的搜索,即以图搜图。文章提到在不同环境下运行时需要注意的配置,并指出代码可进一步优化,例如结合爬虫处理网上图片。
摘要由CSDN通过智能技术生成

使用图像直方图方式搜索相似图片

该文章仅用于学习~

  通常我们搜索图片,都是根据图片的标签搜索的。基于内容的搜索,就是不知道标签,而是直接输入一幅图像,然后搜索到与这幅图像相同或相似的图像(以图搜图)。以图搜图的方法之一就是比较图像直方图。
下面我将使用图像直方图形式匹配相似图片:
在不同电脑上匹配时要修改3个地方
eg:想读到的原图务必在该程序文件夹下存有图片!否则会报错

			(1)path的路径
			(2)line 87 的绝对路径
			(3)file[]等图像字符串的大小,这里我D盘只有3个图像判断,故直接写了 <3>       在line 80及line28
			(4)line 119 的匹配值可以修改,我设置了-0.98到0.02的区间图像都为符合的图像,可以根据自己的图像所需进行修改
#include<opencv2/opencv.hpp>
#include<iostream>
#include<vector> 
#include<fstream>
#include <io.h>
#include<string>

using namespace cv;
using namespace std;

const char path[100] = "D:\\image\\*.jpg"; //不同的路径可以自己改,支持通配符查找,注意同时修改 line85 的图像路径


/*              在不同电脑上匹配时要修改3个地方
					eg:想读到的原图务必在该程序文件夹下存有图片!否则会报错

				(1)path的路径
				(2)line 87 的绝对路径
				(3)file[]等图像字符串的大小,这里我D盘只有3个图像判断,故直接写了 <3>       在line 80及line28
				(4)line 119 的匹配值可以修改,我设置了-0.98到0.02的区间图像都为符合的图像,可以根据自己的图像所需进行修改

*/
int main()
{
   

	/*********************将文件夹中的文件保存为file[]字符串**********************/
	string file[3];//*
	struct _finddata_t fileinfo;
	intptr_t handle;
	handle = _findfirst(path, &fileinfo);
	int i = 1;//第1位
	if (!handle)
	{
   
		cout << "输入的路径有错误" << endl;
		return -1;
	}
	else
	{
   
		file[0] = fileinfo.name;//试着读出第一个图象存到第0位,如果可以读出就继续,不然就退出
		//cout << fileinfo.name << endl;
		while (_findnext(handle,
  • 2
    点赞
  • 5
    收藏
    觉得还不错? 一键收藏
  • 3
    评论
评论 3
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值