显著图:

显著图是将一幅图像中最容易吸引人眼球的部分突出表现的图像
虽然现在我们通常使用深度学习的方法计算显著图,但是一开始人们用图像的RGB成分或者HSV成分创建高斯金字塔,并通过求差来得到显著图。
有关高斯金字塔的描述,读者可查看:
知乎大神讲解高斯金字塔
自己实现高斯金字塔

我提供了使用高斯金字塔来简单地求显著图的算法:

  1. 我们使用双线性插值调整图像大小至原图的 1/2 1/4 1/8… ,再使用双线性插值将生成的这些图像放大到原来的大小。
  2. 将得到的金字塔(我们将金字塔的各层分别编号为0,1,2,3,4,5)两两求差。
  3. 将第二部得到的差全部相加,并正规化到[0,255]。
    完成以上步骤就可以得到显著图了。我们知道在缩小放大的过程中,图像的边缘变化较大,通过将缩小放大后的图像做差,我们得到的是图像灰度剧烈变化的区域,同时也是我们眼球感兴趣的区域。

实验:利用高斯金字塔制作图像的显著图:

# Writer : wojianxinygcl@163.com
# Date   : 2020.3.25
import cv2 as cv
import numpy as np
import matplotlib.pyplot as plt# make image pyramid
def make_pyramid(gray):# 裁剪图像H,W = gray.shapeH -= H % 32W -= W % 32out = np.zeros((H,W),dtype=np.uint8)out = gray[:H,:W]# first elementpyramid = [out]# each scalefor i in range(1, 6):# define scalea = 2. ** i# down scalep = cv.resize(out, (int(out.shape[1] / a), int(out.shape[0] / a)),interpolation=cv.INTER_LINEAR)# up scalep = cv.resize(p, (int(p.shape[1] * a), int(p.shape[0] * a)),interpolation=cv.INTER_LINEAR)# add pyramid listpyramid.append(p.astype(np.float32))return pyramid# make saliency map
def saliency_map(pyramid):# get shapeH, W = pyramid[0].shape# prepare out imageout = np.zeros((H, W), dtype=np.float32)# add each differenceout += np.abs(pyramid[0] - pyramid[5])out += np.abs(pyramid[0] - pyramid[4])out += np.abs(pyramid[0] - pyramid[3])out += np.abs(pyramid[3] - pyramid[2])out += np.abs(pyramid[4] - pyramid[1])out += np.abs(pyramid[5] - pyramid[0])# normalizationout = out / out.max() * 255return out# Read image
img = cv.imread("../paojie.jpg")# grayscale
gray = cv.cvtColor(img,cv.COLOR_RGB2GRAY)# pyramid
pyramid = make_pyramid(gray)# pyramid -> saliency
out = saliency_map(pyramid)out = out.astype(np.uint8)# Save result
cv.imshow("result", out)
cv.imwrite("out.jpg", out)
cv.waitKey(0)
cv.destroyAllWindows()


可以看到,显著图中亮的部分就是我们的眼睛会特别注意的部分,没错,就是炮姐的卡姿兰大眼睛。

点个赞再走呗!

利用高斯金字塔制作图像显著图相关推荐

  1. 图像眼睛怎么眨眼c语言,可牛影像怎么制作眨眼动态图?

    可牛影像是一款十分常用的图片处理软件,在这里你可以整理任何想要的图片,修改任何你想要的图片,比如制作一些很好玩的小动图,在聊天时候发一些动态图非常生动可爱.今天小编就给大家讲讲用可牛影像怎么制作眨眼动 ...

  2. 图像眼睛怎么眨眼c语言,可牛影像怎么制作眨眼动态图 可牛影像制作眨眼动态图教程...

    在聊天时候发一些动态图非常生动可爱.今天小编就给大家讲讲用可牛影像怎么制作眨眼动态图,让你可以轻松制作出眨眼动图,当表情包来使用. 类别:图像制作   大小:12.57M    语言:简体中文 评分: ...

  3. 图像金字塔与图像融合——OpenCv库

    图像金字塔与图像融合--OpenCv 内容来自博客~ OpenCV中图像特征描述算法(SIFT,SURF,ORB等)中涉及了图像金字塔的内容. 高斯金字塔 高斯金字塔是最基本的图像塔.首先将原图像作为 ...

  4. 使用Python,OpenCV制作图像Mask——截取ROIs及构建透明的叠加层

    使用Python,OpenCV制作图像Mask--截取ROIs及构建透明的叠加层 1. 效果图 2. 源码 参考 这篇博客将介绍如何使用OpenCV制作Mask图像掩码.使用位运算和图像掩码允许我们只 ...

  5. 滤波、漫水填充、图像金字塔、图像缩放、阈值化

      imgpro 组件是 Image 和 Process 这两个单词的缩写组合,即图像处理模块,这个模块包含了如下内容: 文章目录 1.线性滤波:方框滤波.均值滤波.高斯滤波 1.1 平滑处理 1.2 ...

  6. opencv进阶学习笔记10:图像金字塔和图像梯度

    基础版笔记传送门: python3+opencv学习笔记汇总目录(适合基础入门学习) 进阶版笔记目录链接: python+opencv进阶版学习笔记目录(适合有一定基础) 图像金字塔 变小 变大 原理 ...

  7. python制作gif动画_实用的Python(2)利用Python制作gif动图

    一.简介 moviepy是一个专门用于视频剪辑制作的模块,可以自动化完成很多繁琐的视频剪辑处理工作,除了处理视频数据之外,moviepy中还内置了可以制作gif动图的功能,通过使用moviepy.ed ...

  8. 如何将图片序列化_PS如何将图片制作成gif动态图 ps制作gif动态图教程

    想要制作gif动态图片,为何不试试万能的PS呢!使用PS可以帮助用户快速轻松的制作gif动图,操作简单又方便.那么如何利用PS快速将图片做成gif动态图,其实方法是很简单,制作这种gif动图其实就是把 ...

  9. MATLAB 制作gif动态图

    MATLAB 制作gif动态图的基本思想就是,将一张张的静态图组合成一张能动的gif图片,并保存到相应的位置. 那么,要想制作一张动态图,首先要有若干个静态图,并且他们的索引值是连续的.下面先说一下m ...

最新文章

  1. 在线作图丨数据降维方法⑥——消除趋势对应分析(Detrended correspondence analysis, DCA)
  2. 安装SeleniumPhantomJS
  3. PHP (20140519)
  4. Oracle中去重复记录 不用distinct
  5. Java学习进度(2013.03.13)—Struts2学习一
  6. MFC中 给按钮添加图片的方法
  7. OpenOffice介绍
  8. 全国计算机等级考试题库二级C操作题100套(第71套)
  9. Python开发Http代理服务器 - socketref,呆在autonavi.com - C++博客
  10. 网络安全课第三节 SQL 注入的检测与防御
  11. 网络摄像机进行互联网视频直播录像方案的选择,EasyNVS or EasyCloud or EasyGBS?
  12. hbuilderAnd海马玩模拟器的连接
  13. access用姓名字段统计人数_用Access统计新生数据
  14. 离线语音控制命令识别,全向麦、会议蓝牙音箱方案
  15. 38岁超任模拟器设计者自杀!死前留下真名与神秘自拍照,最后一刻开源higan
  16. 做好PMC管理三大工作,轻松搞定生产计划与物料控制
  17. 汽车电子学习笔记 --- IAR
  18. 模糊PID控制的规则表一点理解
  19. android 分享纯图片到QQ空间实现方式
  20. CertBot 更新证书失败解决

热门文章

  1. 讯飞输入法粤语语音识别率达95%支持粤转普
  2. 语音识别技术在智能家居中的应用有哪些?
  3. 运筹学常考知识点总结一
  4. vue 绑定背景图片、图片
  5. 【王道操作系统笔记】系统调用
  6. 【linux笔记】CentOs 7配置网络IP
  7. 【JAVA笔记】线程(1):多线程的介绍和实现
  8. LeetCode 226 翻转二叉树
  9. 从硬件竞争到软实力PK——电视媒体竞争观察
  10. flink sql设置并行度_Flink原理——任务调度原理