1什么是Gist特征

(1) 一种宏观意义的场景特征描述        (2) 只识别“大街上有一些行人”这个场景,无需知道图像中在那些位置有多少人,或者有其他什么对象。        (3) Gist特征向量可以一定程度表征这种宏观场景特征 GIST定义下列五种对空间包络的描述方法

空间包络名

阐释

自然度(Degree of Naturalness)

场景如果包含高度的水平和垂直线,这表明该场景有明显的人工痕迹,通常自然景象具有纹理区域和起伏的轮廓。所以,边缘具有高度垂直于水平倾向的自然度低,反之自然度高。

开放度(Degree of Openness)

空间包络是否是封闭(或围绕)的。封闭的,例如:森林、山、城市中心。或者是广阔的,开放的,例如:海岸、高速公路。

粗糙度(Degree of Roughness)

主要指主要构成成分的颗粒大小。这取决于每个空间中元素的尺寸,他们构建更加复杂的元素的可能性,以及构建的元素之间的结构关系等等。粗糙度与场景的分形维度有关,所以可以叫复杂度。

膨胀度(Degree of Expansion)

平行线收敛,给出了空间梯度的深度特点。例如平面视图中的建筑物,具有低膨胀度。相反,非常长的街道则具有高膨胀度。

险峻度(Degree of Ruggedness)

即相对于水平线的偏移。(例如,平坦的水平地面上的山地景观与陡峭的地面)。险峻的环境下在图片中生产倾斜的轮廓,并隐藏了地平线线。大多数的人造环境建立了平坦地面。因此,险峻的环境大多是自然的。

2 Gist的实现--LMgist

LMgist的Matlab代码 LMgist Matlab代码

LMgist Matlab代码的使用

% 读取图片

img = imread('demo2.jpg');

% 设置GIST参数

clear param

param.orientationsPerScale = [8 8 8 8]; % number of orientations per scale (from HF to LF)

param.numberBlocks = 4;

param.fc_prefilt = 4;

% 计算GIST

[gist, param] = LMgist(img, '', param);

3 LMgist原理

3.1 LMgist算法主流程

G1:对输入图片进行预处理 (RGB或RGBA转128x128灰度图)

G2:对输入图片进行Prefilt处理

G3:计算图片的Gist向量

3.2 G2 对输入图片进行Prefilt处理

3.2.1 Pad images to reduce boundary artifacts (扩边+去伪影)

$${\bf{matlog}} = \log \left( {{\bf{mat}} + 1} \right)$$ $${\bf{matPad}} = {\mathop{\rm sympading}\nolimits} \left( {{\bf{matlog}},\left[ {5,5,5,5} \right]} \right)$$


图1 sympading操作

3.2.2 Filter (构造滤波器)

$${\bf{matGf}} = {\mathop{\rm FFTSHITF}\nolimits} \left( {\exp \left( { - \frac{{{\bf{matF}}{{\bf{x}}^2} + {\bf{matF}}{{\bf{y}}^2}}}{{{{\left( {\frac{{fc}}{{\sqrt {\log \left( 2 \right)} }}} \right)}^2}}}} \right)} \right)$$

3.2.3 Whitening (白化)

$${\bf{matRes}} = {\bf{matPad}} - {\mathop{\rm Real}\nolimits} \left( {{\mathop{\rm IFFT}\nolimits} \left( {{\mathop{\rm FFT}\nolimits} \left( {{\bf{matPad}}} \right){\bf{matGf}}} \right)} \right)$$

3.2.4 Local contrast normalization (局部对比度归一化)

$${\bf{matLocal}} = \sqrt {\left| {{\mathop{\rm IFFT}\nolimits} \left( {{\mathop{\rm FFT}\nolimits} \left( {{\bf{matRes}} \cdot {\bf{matRes}}} \right) \cdot {\bf{matGf}}} \right)} \right|} $$

$$ {\bf{matRes}} = \frac{{{\bf{matRes}}}}{{0.2 + {\bf{matLocal}}}} $$

3.2.5 Local contrast normalization (局部对比度归一化)

$${\bf{matPrefilt = matRes}}\left[ {5:64 + 5,5:64 + 5} \right]$$

3.3 计算图片的Gist向量

3.3.1 Pading

$${\bf{matPad}} = {\mathop{\rm sympading}\nolimits} \left( {{\bf{matPrefilt}},\left[ {32,32,32,32} \right]} \right)$$

3.3.2 FFT

$${\bf{matLocal}} = {\mathop{\rm FFT}\nolimits} \left( {{\bf{matPad}}} \right)$$

3.3.3 遍历每个Gabor核函数


图2 全局Gist特征的提取

4 LMgist的Python实现

4.1 提取Gist特征

import cv2

from img_gist_feature.utils_gist import *

s_img_url = "./test/A.jpg"

gist_helper = GistUtils()

np_img = cv2.imread(s_img_url, -1)

print("default: rgb")

np_gist = gist_helper.get_gist_vec(np_img)

print("shape ", np_gist.shape)

print("noly show 10dim", np_gist[0,:10], "...")

print()

print("convert rgb image")

np_gist = gist_helper.get_gist_vec(np_img, mode="rgb")

print("shape ", np_gist.shape)

print("noly show 10dim", np_gist[0,:10], "...")

print()

print("convert gray image")

np_gist = gist_helper.get_gist_vec(np_img, mode="gray")

print("shape ", np_gist.shape)

print("noly show 10dim", np_gist[0,:10], "...")

print()

运行得到的gist特征为 default: rgb shape (1, 1536) noly show 10dim [0.02520592 0.05272802 0.05941689 0.05476999 0.13110509 0.13333975 0.29072759 0.16522023 0.25032277 0.36850457] ...

convert rgb image shape (1, 1536) noly show 10dim [0.02520592 0.05272802 0.05941689 0.05476999 0.13110509 0.13333975 0.29072759 0.16522023 0.25032277 0.36850457] ...

convert gray image shape (1, 512) noly show 10dim [0.10004389 0.20628179 0.17682694 0.16277722 0.10557428 0.14448622 0.29214159 0.11260066 0.16488087 0.28381876] ...

4.2 Gist特征余弦相似距离

下载好github中的代码项目,运行python _test_get_cossim.py

5 LMgist的效果

参考资料

原文出处:https://www.cnblogs.com/Kalafinaian/p/12275738.html

matlab gist,图像GIST特征和LMGIST包的python实现(有github)相关推荐

  1. linux中python如何调用matlab的数据_特征锦囊:如何在Python中处理不平衡数据

    今日锦囊 特征锦囊:如何在Python中处理不平衡数据 ? Index 1.到底什么是不平衡数据 2.处理不平衡数据的理论方法 3.Python里有什么包可以处理不平衡样本 4.Python中具体如何 ...

  2. 计算机视觉与深度学习 | 使用MATLAB实现图像SURF特征的提取与匹配以及目标定位(代码类)

    了解博主更多项目查看 github:https://github.com/MichaelBeechan CSDN:https://blog.csdn.net/u011344545 ========== ...

  3. matlab图片差异度的比较,Matlab进行图像相似度比较,使用欧式距离

    实验内容在网上或者提前准备10张(或以上)图像,使用matlab提取图像直方图特征并进行显示:将图像特征进行保存(保存为矩阵形式.mat格式),并进行图像相似度比较(使用欧式距离).clear,clc ...

  4. 【图像识别算法】像素级提取图像关键特征、内容 --python代码

    像素级提取图像关键特征算法-rgb 关键词:python像素级处理图像,python提取图片关键特征. 基于knn的图像识别技术主要涉及到以下概念: 色彩成像原理 [图像原理]rgb数字图片概念 计算 ...

  5. GIST 空间包络特征 推荐论文 简介

    GIST概念最初源自1979年Friedman A的论文,后于2001年被Oliva等人借用来代指空间包络特征,随后就是2003年由Torralba等人的继续研究. 如果要了解的GIST的话,推荐看以 ...

  6. 互信息配准matlab,基于图像特征和互信息的图像配准方法

    基于图像特征和互信息的图像配准方法 [专利摘要]本发明公开一种基于图像特征和互信息的图像配准方法,主要用于提高现有基于互信息配准方法的精确度.其实现步骤为:(1)输入两幅图像,一幅为参考图像r,另一幅 ...

  7. 设置matlab图像线框,matlab在图像中画长方形(框)

    function [state,result]=draw_rect(data,pointAll,windSize,showOrNot) % 函数调用:[state,result]=draw_rect( ...

  8. 基于matlab的图像形状与分类毕业设计(含源文)

    基于matlab的图像形状与分类 摘 要 数字图像处理是一门新兴技术,随着计算机硬件的发展,数字图像的实时处理已经成为可能,由于数字图像处理的各种算法的出现,使得其处理速度越来越快,能更好的为人们服务 ...

  9. python统计图片的纹理信息_python实现LBP方法提取图像纹理特征实现分类

    题目描述 这篇博文是数字图像处理的大作业. 题目描述:给定40张不同风格的纹理图片,大小为512*512,要求将每张图片分为大小相同的9块,利用其中的5块作为训练集,剩余的4块作为测试集,构建适当的模 ...

最新文章

  1. 程序员计算器_GitHub 日收 7000 星,Windows 计算器项目开源即爆红!
  2. 判断iis是否已经安装
  3. MongoDB Wiredtiger存储引擎实现原理——Copy on write的方式管理修改操作,Btree cache...
  4. 爱python网_Python
  5. 查询复旦大学往年的考研成绩
  6. Flutter之基本数据类型测试
  7. 最小生成树Prime算法
  8. App微信支付(Java)
  9. Tableau零基础教程
  10. 微信小程序防止后退,返回主页,30秒看完关闭
  11. 飞思卡尔 I.MX6Q-vpu视频编解码
  12. uboot环境变量setenv学习
  13. 数据分析AB测试实战项目
  14. E: Unable to locate package python-distutils The command ‘/bin/sh -c apt-get update apt-get insta
  15. Python实现九宫格解锁
  16. Js实现轮盘抽奖功能,一招帮你解决选择困难症
  17. 无法运行Hi3516CV-DEMB-uboot-DDR...-BUS_266M.xsl宏。可能是因为该宏在此工作簿中不可用,或者所有的宏都被禁用。
  18. 门限的限意思是什么_只限是什么意思和拼音怎么读
  19. Alexa关闭,最好的SEO工具轮到谁了?
  20. PostgreSQL创建存储过程

热门文章

  1. C state和P state 一些体会
  2. h3c交换机限制端口访问_h3c交换机设置限制公司员工访问外网
  3. Java安装系列之mysql+sqlyong安装
  4. 小米扫地机器人拆机 石头_扫地机有这一台就够了:石头扫地机器人T6 首拆
  5. 正则去除HTML标签
  6. 2. 无门槛学会数据类型与输入、输出函数,滚雪球学 Python
  7. 天鸟技术中台-建设过程-日常经验2:通用参数和数据权限控制
  8. 2019年8月 interllij idea 详细安装教程以及配置svn插件
  9. 最新多传感器融合基准 | Argoverse 2:用于感知和预测的下一代数据集
  10. Servlet 实现网页计数器