栏目分类:
子分类:
返回
名师互学网用户登录
快速导航关闭
当前搜索
当前分类
子分类
实用工具
热门搜索
名师互学网 > IT > 软件开发 > 后端开发 > Python

图像直方图杂记

Python 更新时间: 发布时间: IT归档 最新发布 模块sitemap 名妆网 法律咨询 聚返吧 英语巴士网 伯小乐 网商动力

图像直方图杂记

原理思路

从上述例子中可以看到 投影图像中的像素灰度值与待分割图像对应像素灰度值在模板直方图中对应窗口值相关 即与模板图像中出现概率相关。当投影图像中灰度值更大时 代表待分割图像中对应像素的灰度值在模板图像的直方图数值更大 则大概率出现在模板图像中时 即是我们认为的分割目标。因此我们可以将其视为一种“无参”阈值分割或直方图“匹配” 阈值通过模板图像直方图自动生成。

OpenCV文档中总结的更为形象 直接搬运如下

“Back Projection is a way of recording how well the pixels of a given image fit the distribution of pixels in a histogram model”.“To make it simpler: For Back Projection, you calculate the histogram model of a feature and then use it to find this feature in an image”. 注意事项

在使用中有以下注意

在模板图像中尽可能地只包含要提取的目标 或者使用在计算直方图时使用掩膜 以减少干扰像素的影响 选择恰当的histSize至关重要 由于该方法使用直方图 像素值 进行分割 不同于灰度图 针对彩色图像使用HSV空间的H、S通道生成的2d直方图的分割效果更佳。 代码示例
# 读取模板图像
roi cv2.imread( tmplcoin.png )
hsv cv2.cvtColor(roi, cv2.COLOR_BGR2HSV)
# 读取待分割图像
target cv2.imread( coins.jpg )
hsvt cv2.cvtColor(target, cv2.COLOR_BGR2HSV)
# 计算模板图像h-s通道的2d直方图
roihist cv2.calcHist([hsv], [0, 1], None, [20, 35], [0, 180, 0, 256])
# 将直方图归一化至255
cv2.normalize(roihist, roihist, 0, 255, cv2.NORM_MINMAX)
# 计算反向投影
dst cv2.calcBackProject([hsvt], [0, 1], roihist, [0, 180, 0, 256], 1)
# 对投影图像进行阈值分割
_, thresh cv2.threshold(dst, 50, 255, 0) 

分割结果见下图所示

可以看到实际上该方法的分割结果较为一般 该方法的主要是在视频跟踪领域的MeanShift算法中使用。

转载请注明:文章转载自 www.mshxw.com
本文地址:https://www.mshxw.com/it/267965.html
我们一直用心在做
关于我们 文章归档 网站地图 联系我们

版权所有 (c)2021-2022 MSHXW.COM

ICP备案号:晋ICP备2021003244-6号