欢迎来到代码驿站!

Python代码

当前位置:首页 > 软件编程 > Python代码

openCV显著性检测的使用

时间:2023-02-02 10:12:43|栏目:Python代码|点击:

1. 概念

显著性检测,就是使用图像处理技术和计算机视觉算法来定位图片中最“显著”的区域。显著区域就是指图片中引人注目的区域或比较重要的区域,例如人眼在观看一幅图片时会首先关注的区域。例如下图,我们人眼一眼看过去首先注意到的不是草坪,而是躺在草坪上的内马尔,内马尔所在的区域就是显著性区域。这种自动定位图像或场景重要区域的过程称为显着性检测。显著性检测在目标检测、机器人领域有很多应用。

在OpenCV的saliency模块中有三种显著性检测算法:

  • Static saliency:此类显着性检测算法依赖于图像特征和统计信息来定位图像中显著性区域。
  • Motion saliency: 此类显着性检测算法输入为视频或一系列连续帧。运动显着性算法处理这些连续的帧,并跟踪帧中“移动”的对象。这些移动的对象被认为是显着性区域。
  • Objectness:这类显著性检测算法计算出一个个的建议区域(proposals),这些建议区域被认为是目标可能存在的区域。

OpenCV提供类4种显著性检测算法的实现:

  • cv2.saliency.ObjectnessBING_create()
  • cv2.saliency.StaticSaliencySpectralResidual_create()
  • cv2.saliency.StaticSaliencyFineGrained_create()
  • cv2.saliency.MotionSaliencyBinWangApr2014_create()

2 静态显著性检测

static_saliency.py使用两种Static saliency算法:cv2.saliency.StaticSaliencySpectralResidual_create()和cv2.saliency.StaticSaliencyFineGrained_create()。使用computeSaliency()计算图片的显著性区域,返回结果是和输入图片一样大小的矩阵,每个像素位置的取值[0,1],值越大表示该像素位置越显著。最后我将返回显著性矩阵可视化出来。

3 代码

'''
2 图像凸显
'''
import cv2
import matplotlib.pyplot as plt

# 1 read
img = cv2.imread('luna.png',1)
img = cv2.cvtColor(img,cv2.COLOR_BGR2RGB)

# 2 StaticSaliencySpectralResidual_create()
Residual = cv2.saliency.StaticSaliencySpectralResidual_create()
_,img_Residual = Residual.computeSaliency(img)
img_Residual = (img_Residual * 255).astype("uint8")

# 3 saliency.StaticSaliencyFineGrained_create()
Grained = cv2.saliency.StaticSaliencyFineGrained_create()
_,img_Grained = Grained.computeSaliency(img)
img_Grained = (img_Grained*255).astype('uint8')
thre = cv2.threshold(img_Grained, 0, 255,
                     cv2.THRESH_BINARY | cv2.THRESH_OTSU)[1]


# 4 show
plt.subplot(221)
plt.imshow(img)
plt.title('img')

plt.subplot(222)
plt.imshow(img_Residual)
plt.title('img_Residual')
#
plt.subplot(223)
plt.imshow(img_Grained)
plt.title('img_Grained')

plt.subplot(224)
plt.imshow(thre)
plt.title('thre')

plt.show()

上一篇:python实战scrapy操作cookie爬取博客涉及browsercookie

栏    目:Python代码

下一篇:在Pycharm中执行scrapy命令的方法

本文标题:openCV显著性检测的使用

本文地址:http://www.codeinn.net/misctech/224921.html

推荐教程

广告投放 | 联系我们 | 版权申明

重要申明:本站所有的文章、图片、评论等,均由网友发表或上传并维护或收集自网络,属个人行为,与本站立场无关。

如果侵犯了您的权利,请与我们联系,我们将在24小时内进行处理、任何非本站因素导致的法律后果,本站均不负任何责任。

联系QQ:914707363 | 邮箱:codeinn#126.com(#换成@)

Copyright © 2020 代码驿站 版权所有