OpenCV实现图片搜索引擎
OpenCV(Open Source Computer Vision Library)的计算效率很高且能够完成实时任务。OpenCV库由优化的C/C++代码编写而成,能够充分发挥多核处理和硬件加速的优势。OpenCV有大量技术社区和超过900万的下载量,它的使用范围极为广泛,如人机互动、资源检查、拼接地图等。
0.Python+OpenCV实现图像搜索引擎
之前看到谷歌和百度出了图像搜索引擎,查阅了相关资料深入了解了图像搜索引擎的算法原理。一部分参考了用Python和OpenCV创建一个图片搜索引擎的完整指南。决定自己实现一个简单的图像搜索引擎,也可以让自己更快地查找mac中的图片。为什么使用OpenCV+Python实现图像搜索引擎呢?
首先,OpenCV是一个开源的计算机视觉处理库,在计算机视觉、图像处理和模式识别中有广泛的应用。接口安全易用,而且跨平台做的相当不错,是一个不可多得的计算机图像及视觉处理库。
其次,Python的语法更加易用,贴近自然语言,极为灵活。虽然计算效率并不高,但快速开发上它远胜于C++或其他语言,引入pysco能够优化python代码中的循环,一定程度上缩小与C/C++在计算上的差距。而且图像处理中需要大量的矩阵计算,引入numpy做矩阵运算能够降低编程的冗杂度,更多地把精力放在匹配的逻辑上,而非计算的细枝末节。
1. 图像搜索原理
图像搜索算法基本可以分为如下步骤:
提取图像特征。如采用SIFT、指纹算法函数、哈希函数、bundling features算法等。当然如知乎中所言,也可以针对特定的图像集群采用特定的模式设计算法,从而提高匹配的精度。如已知所有图像的中间部分在颜色空间或构图上有显著的区别,就可以加强对中间部分的分析,从而更加高效地提取图像特征。
图像特征的存储。一般将图像特征量化为数据存放于索引表中,并存储在外部存储介质中,搜索图片时仅搜索索引表中的图像特征,按匹配程度从高到低查找类似图像。对于图像尺寸分辩率不同的情况可以采用降低采样或归一化方法。
相似度匹配。如存储的是特征向量,则比较特征向量之间的加权后的平方距离。如存储的是散列码,则比较Hamming距离。初筛后,还可以进一步筛选最佳图像集。
2. 图片搜索引擎算法及框架设计
基本步骤
- 采用颜色空间特征提取器和构图空间特征提取器提取图像特征。
- 图像索引表构建驱动程序生成待搜索图像库的图像特征索引表。
- 图像搜索引擎驱动程序执行搜索命令,生成原图图像特征并传入图片搜索匹配器。
- 图片搜索匹配内核执行搜索匹配任务。返回前
limit
个最佳匹配图像 - (具体代码来自如下网址:https://blog.csdn.net/coderhuhy/article/details/46575667)
- 以上内容均转自上述网址
OpenCV实现图片搜索引擎相关推荐
- 用Python和OpenCV创建一个图片搜索引擎的完整指南
无论你是将个人照片贴标签并分类,或是在公司的网站上搜索一堆照片,还是在为下一篇博客寻找合适的图片.在用文本和关键字来描述图片是非常痛苦的事. 我就遇到了这样的痛苦的事情,上周二我打开了一个很老的家庭相 ...
- 创建一个图片搜索引擎的完整指南
大家都知道,通过文本或标签来搜索图片的体验非常糟糕. 无论你是将个人照片贴标签并分类,或是在公司的网站上搜索一堆照片,还是在为下一篇博客寻找合适的图片.在用文本和关键字来描述图片是非常痛苦的事. 我就 ...
- python图片旋转脚本_Python+OpenCV 实现图片无损旋转90°且无黑边
0. 引言 有如上一张图片,在以往的图像旋转处理中,往往得到如图所示的图片. 然而,在进行一些其他图像处理或者图像展示时,黑边带来了一些不便.本文解决图片旋转后出现黑边的问题,实现了图片尺寸不变的旋转 ...
- python opencv调节图片亮度与对比度
python opencv调节图片亮度与对比度 亮度调整是将图像像素的强度整体变大/变小,对比度调整指的是图像暗处变得更暗,亮出变得更亮,从而拓宽某个区域内的显示精度. 创建两个滑动条分别调整对比度和 ...
- python opencv 得到图片路径image_path的宽wide、高heigh和深度deep
python opencv 得到图片路径image_path的宽wide.高heigh和深度deep 图片路径是:'1.jpg' 下面是具体代码: import cv2 #得到图片路径image_pa ...
- OPENCV打开图片进行边缘检测
OPENCV打开图片并且进行边缘检测 #ifdef _CH_ #pragma package <opencv> #endif#ifndef _EiC #include "cv.h ...
- opencv去除图片的高光
opencv去除图片的高光 有明显的修补痕迹 https://blog.csdn.net/qq_43555843/article/details/102510425 参考这个: https://blo ...
- Giphy – 分享一个很棒的 GIF 动画图片搜索引擎
GIF 动画图片是一种非常有趣的图片格式,比静态图片更能够表达出含义,如果能制作得有创意,那就非常的有趣.今天向大家推荐一个很棒的 GIF 动画图片搜索引擎--Giphy. 您可能感兴趣的相关文章 轻 ...
- DALSA线阵CCD相机开发 之 opencv读取图片
SDK的下载 Sapera_LT_8.31_SDK 百度网盘下载地址:链接:密码:ckm7. SDK的安装 解压运行.exe文件,按照提示确定,下一步即可. 帮助文档和demo 如果要获得完整的帮助文 ...
最新文章
- golang中的执行规则
- 1002:输出第二个整数
- hive一次加载多个文件_0738-6.2.0-如何在Hive中使用多分隔符
- WebSen!NT的行业分类说明
- python并发处理list数据_3种方式实现python多线程并发处理
- 诺基亚正式收购阿朗:物联网时代再出发
- 计算机网络成绩分析单,【计算机网络论文】计算机网络技术课程教考分离解析(共2033字)...
- 【LeetCode】【字符串】题号:*434. 字符串中的单词数
- eclipse部署Javaweb项目
- Windows XP无线零配置服务
- 谷歌浏览器截取长图 (不用安装插件)
- excepted one 0f #, =>at line16,column 16(byte 311)
- Qt编写的知名的开源软件汇总
- IBM 2005-B16 SAN光纤交换机学习笔记
- 分组交换(Packet Switching)和线路交换(Circuit Switching)
- 阿沐帮大家总结了自动化基本操作——selenium_常见技巧
- 基于XQ6657Z35-EVM开发平台上TI TMS320C6657 TLV320AIC3206音频设计
- python中常见的错误提示_python常见异常提示
- kms不是盗版,不了解kms的管理员请看下微软官方链接,解决”运行microsoft windows非核心版本的计算机上”的问题(kms不等于盗版)
- c语言实现图片缩放,图片缩放与合并(C语言实现)