目录

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

在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. # 1 read
  2. img = cv2.imread('luna.png',1)
  3. img = cv2.cvtColor(img,cv2.COLOR_BGR2RGB)
  4. # 2 StaticSaliencySpectralResidual_create()
  5. Residual = cv2.saliency.StaticSaliencySpectralResidual_create()
  6. _,img_Residual = Residual.computeSaliency(img)
  7. img_Residual = (img_Residual * 255).astype("uint8")
  8. # 3 saliency.StaticSaliencyFineGrained_create()
  9. Grained = cv2.saliency.StaticSaliencyFineGrained_create()
  10. _,img_Grained = Grained.computeSaliency(img)
  11. img_Grained = (img_Grained*255).astype('uint8')
  12. thre = cv2.threshold(img_Grained, 0, 255,
  13. cv2.THRESH_BINARY | cv2.THRESH_OTSU)[1]
  14. # 4 show
  15. plt.subplot(221)
  16. plt.imshow(img)
  17. plt.title('img')
  18. plt.subplot(222)
  19. plt.imshow(img_Residual)
  20. plt.title('img_Residual')
  21. #
  22. plt.subplot(223)
  23. plt.imshow(img_Grained)
  24. plt.title('img_Grained')
  25. plt.subplot(224)
  26. plt.imshow(thre)
  27. plt.title('thre')
  28. plt.show()

到此这篇关于openCV显著性检测的使用的文章就介绍到这了,更多相关openCV显著性检测内容请搜索我们以前的文章或继续浏览下面的相关文章希望大家以后多多支持我们!

更多相关文章

  1. php中文网下侧区域的实例演示
  2. Android(安卓)在TextView中加入多个点击文本区域
  3. php中文网右侧区域的实例演示
  4. Android(安卓)性能优化之内存泄漏检测以及内存优化(中)
  5. android px dip 等的区别
  6. Android版本更新知识(检测、升级)总结
  7. android 版本检测与自动更新
  8. 检查Android进程当前是否正在后台运行
  9. android java 检测文件夹(目录)是否存在,不存在则创建

随机推荐

  1. Android欢迎界面引导页
  2. Android Sqlite轻量级数据库框架
  3. android 对话框的封装
  4. android获取内部外部存储空间
  5. Android手机游戏开发入门教程
  6. android创建类似QQ的android弹出菜单
  7. Android 支持多屏幕机制
  8. android 开发中java.net.UnknownServiceE
  9. Android 实现聊天-smack4.19
  10. android简单计算器源码