Python,OpenCV进行直方图反投影

  • 1. 效果图
  • 2. 源码
  • 参考

这篇博客将介绍Python,OpenCV中的直方图反投影。直方图反投影用于图像分割或在图像中查找感兴趣的对象。 简单地说,它创建了一个与输入图像大小相同(但只有一个通道)的图像,其中每个像素对应于该像素属于感兴趣对象的概率。输出图像将使感兴趣的对象比其余部分更白。如提取图像中的地面;

颜色直方图优于灰度直方图,因为物体的颜色比灰度强度更好地定义物体。

1. 效果图

如下官方的提取地面的效果图如下:

2. 源码

import cv2
import numpy as np# ROI是感兴趣区域
roi = cv2.imread('rose_red.png')
hsv = cv2.cvtColor(roi, cv2.COLOR_BGR2HSV)# 需要寻找的ROI对象
target = cv2.imread('rose.png')
hsvt = cv2.cvtColor(target, cv2.COLOR_BGR2HSV)# 计算ROI对象的直方图 cv.calcHist  np.histogram2d np.binscount
roihist = cv2.calcHist([hsv], [0, 1], None, [180, 256], [0, 180, 0, 256])# 直方图均衡化,并应用反投影
cv2.normalize(roihist, roihist, 0, 255, cv2.NORM_MINMAX)
dst = cv2.calcBackProject([hsvt], [0, 1], roihist, [0, 180, 0, 256], 1)# 用椭圆进行卷积
disc = cv2.getStructuringElement(cv2.MORPH_ELLIPSE, (5, 5))
cv2.filter2D(dst, -1, disc, dst)# 阈值化并使用按位与
ret, thresh = cv2.threshold(dst, 50, 255, 0)
thresh = cv2.merge((thresh, thresh, thresh))
res = cv2.bitwise_and(target, thresh)res = np.vstack((target, thresh, res))
cv2.imwrite('res.jpg', res)

参考

  • https://docs.opencv.org/3.0-beta/doc/py_tutorials/py_imgproc/py_histograms/py_histogram_backprojection/py_histogram_backprojection.html#histogram-backprojection

Python,OpenCV进行直方图反投影相关推荐

  1. Python+OpenCV:直方图反向投影(Histogram Backprojection)

    Python+OpenCV:直方图反向投影(Histogram Backprojection) Algorithm in Numpy 1. First we need to calculate the ...

  2. Python+OpenCV:直方图均衡化(Histogram Equalization)

    Python+OpenCV:直方图均衡化(Histogram Equalization) ####################################################### ...

  3. Python+OpenCV:直方图(Histograms)

    Python+OpenCV:直方图(Histograms) 理论 什么是直方图?您可以将直方图看作是一种图形或图表,它为您提供关于图像强度分布的总体概念.它是x轴为像素值(范围从0到255,不总是这样 ...

  4. python绘制灰度图片直方图-python+opencv 灰度直方图及其二值化

    图像直方图(histogram)是图像的统计学特征,常用于了解图像的基本特征以便分析.不过图像的直方图不具有空间特征. 图像的灰度直方图(histogram),就是将图像转化成灰度图像之后,统计各个像 ...

  5. python opencv绘制直方图

    灰度直方图概括了图像的灰度级信息,简单的来说就是每个灰度级图像中的像素个数以及占有率 import cv2 import matplotlib.pyplot as plt import numpy a ...

  6. 如何用python绘制灰度直方图_python如何显示图像的灰度直方图-女性时尚流行美容健康娱乐mv-ida网...

    女性时尚流行美容健康娱乐mv-ida网 mvida时尚娱乐网 首页 美容 护肤 化妆技巧 发型 服饰 健康 情感 美体 美食 娱乐 明星八卦 首页 > 高级搜索 python opencv处理 ...

  7. python做直方图-python OpenCV学习笔记实现二维直方图

    本文介绍了python OpenCV学习笔记实现二维直方图,分享给大家,具体如下: 官方文档 – https://docs.opencv.org/3.4.0/dd/d0d/tutorial_py_2d ...

  8. [Python图像处理] 十一.灰度直方图概念及OpenCV绘制直方图

    该系列文章是讲解Python OpenCV图像处理知识,前期主要讲解图像入门.OpenCV基础用法,中期讲解图像处理的各种算法,包括图像锐化算子.图像增强技术.图像分割等,后期结合深度学习研究图像识别 ...

  9. 如何用python绘制灰度直方图_Python Opencv任意形状目标检测并绘制框图实例

    Python Opencv检测并绘制框图 opencv 进行任意形状目标识别,供大家参考,具体内容如下 工作中有一次需要在简单的图上进行目标识别,目标的形状不固定,并且存在一定程度上的噪声影响,但是噪 ...

最新文章

  1. web性能优化之事件节流
  2. java slf4j_SLF4J 使用手册
  3. sublime 代码格式化
  4. Coding the Matrix Week 1 The vector 作业
  5. 第三届网络安全冬训营“朔雪飞扬”在哈尔滨开幕
  6. Java实验14 计算多个二维图形的面积之和
  7. MATLAB去除多余点的命令,如何清除matlab命令窗口中已有的内容
  8. html excel 2位小数,excel保留两位小数_excel用公式保留2位小数的方法
  9. 忍之の爱你术 全代码
  10. Uconn DataMining Math5671 课程小记(1)
  11. PS生成动态的二维码
  12. Windows系统的Chrome 调试运行在 IOS-safari (iPad/iPhone)上的页面
  13. vSphere Client中虚拟机与客户机中的剪切板不能够拷贝、粘贴
  14. 机器学习(一)机器学习概述
  15. 华为汽车鸿蒙,华为鸿蒙来了!“碰一碰”就可实现设备互联
  16. 10个的国外大学论文期刊网站分享
  17. dorado 刷新_记录新建dorado项目更新规则中报错
  18. CVS和CSV概念区分
  19. 阿里云ecs服务器挂载oss
  20. 众多机械设备工业模型图纸素材一键即可获取

热门文章

  1. windows java 小程序_JAVA第一个窗体小程序
  2. Java 修饰符的总结
  3. 显示intent的使用讲解
  4. ABP框架展示异常信息
  5. meson 中调用shell script
  6. k64 datasheet学习笔记35---Analog-to-Digital Converter (ADC)
  7. Android消息机制学习笔记
  8. Codeforces 629D Babaei and Birthday Cake(树状数组优化dp)
  9. JVM系列(之ClassLoader)
  10. 基于设计模式的学习之旅-----访问者模式(附源码)