python + opencv图像处理(十三)——直方图的反向投影

12. 直方图反向投影 1. 什么是反向投影 反向投影就是首先计算某一特征的直方图模型,然后使用模型去寻找图像中存在的特征。更通俗一点,反向投影可以通过颜色直方图来理解,我们检测图像中某个像素点的颜色是否位于直方图中,如果位于则将颜色加亮,通过对图像的检测,得出结果图像,结果图像一定和直方图像匹配。那么对于图像颜色的取样点越多,越能更好的找出目标图形。这里直方图的作用在于提供一个比较标准(也就是模版),即对于要检测的图像来说,需要给它提供一个模版,用于识别出和模版相应的特征。 2. 原理 要理解直方图的反向投影,先要看下直方 阅读详情

HSV 与RGB色彩空间
H:色调(0-360°)
S:饱和度(0.0-1.0)值越大越饱和
V:亮度(0-255)

from cv2 import cv2 as cv
import numpy as np 
from matplotlib import pyplot as plt 


# 直方图反向映射
def back_projection_demo():
    sample = cv.imread("C:\\pictures\\sample.jpg")
    target = cv.imread("C:\\pictures\\target.jpg")
    roi_hsv = cv.cvtColor(sample,cv.COLOR_BGR2HSV)#转换成hsv
    target_hsv = cv.cvtColor(target,cv.COLOR_BGR2HSV)
    # show images
    cv.imshow("sample",sample)
    cv.imshow("target",target)
    # 样本直方图,[32,32]越小,效果越好
    roiHist = cv.calcHist([roi_hsv],[0,1],None,[32,32],[0,180,0,256])
    cv.normalize(roiHist,roiHist,0,255,cv.NORM_MINMAX)  #规划到0-255之间
    '''
    归一化函数cv2.normalize原型:normalize(src, dst[, alpha[, beta[, norm_type[, dtype[, mask]]]]]) -> dst 
    src参数表示输入数组。
    dst参数表示输出与src相同大小的数组,支持原地运算。
    alpha参数表示range normalization模式的最小值。
    beta参数表示range normalization模式的最大值,不用于norm normalization(范数归一化)模式。
    norm_type参数表示归一化的类型。
    norm_type参数可以有以下的取值:
    NORM_MINMAX:数组的数值被平移或缩放到一个指定的范围,线性归一化,一般较常用。
    NORM_INF:归一化数组的C-范数(绝对值的最大值)。
    NORM_L1 :归一化数组的L1-范数(绝对值的和)。
    NORM_L2 :归一化数组的(欧几里德)L2-范数。
    '''
    # 计算反向投影
    dst = cv.calcBackProject([target_hsv],[0,1],roiHist,[0,180,0,256],1)
    cv.imshow("backProjection",dst)
    # dest = cv.bitwise_and(target,target_hsv)
    # cv.imshow('and',dest)
    '''
    函数原型:calcBackProject(images, channels, hist, ranges, scale[, dst]) -> dst
    images参数表示输入图像(是HSV图像)。传入时应该用中括号[ ]括起来。
    channels参数表示用于计算反向投影的通道列表,通道数必须与直方图维度相匹配。
    hist参数表示输入的模板图像直方图。
    ranges参数表示直方图中每个维度bin的取值范围 (即每个维度有多少个bin)。
    scale参数表示可选输出反向投影的比例因子,一般取1。
    '''

# 2D直方图计算显示
def hist2D_demo(image):
    hsv = cv.cvtColor(image,cv.COLOR_BGR2HSV)
    hist = cv.calcHist([hsv],[0,1],None,[32,32],[0,180,0,256])  
    # cv.imshow('hist2D_demo',hist)
    plt.imshow(hist,interpolation='nearest')
    plt.title('2D Histogram')
    plt.show()

if __name__ == "__main__":
    '''
    filepath = "C:\\pictures\\6.jpg"
    img = cv.imread(filepath)       # blue green red
    cv.namedWindow("input image",cv.WINDOW_AUTOSIZE)
    cv.imshow("input image",img)
    '''
    # hist2D_demo(img)
    back_projection_demo()


    cv.waitKey(0)
    cv.destroyAllWindows()

在这里插入图片描述

opencv--python(四)haar,直方图+反向投影,meanshift和Camshift追踪算法 haar人脸检测器 OpenCV 已经包含了很多已经训练好的分类器,其中包括:面部,眼睛,微笑等。我们只需加载需要的 XML 分类器。然后以灰度格式加载输入图像或者是视频。如果检测到面部,它会返回面部所在的矩形区域 Rect(x,y,w,h) import numpy as np import cv2 #加载需要的xml分类器 face_cascade = cv2.CascadeClassi... 阅读详情

相关推荐

opencv图像取反

用opencv对图像进行取反,并显示图像的负片。

OpenCV4-python 学习程序 之 图像处理基础

1 图像的分类 1.二值图像 : 仅包含黑色和白色两种颜色,每个像素点只使用一个bit位即可表示,实际上在OpenCV中最小的数据类型为无符号的8位数,故而实际上二值图像是特殊的灰度图像 2.灰度图像 : 灰度图像仅有黑白两种颜色,故而不够细腻,损失了很多细节,通常计算机会将灰度处理为256个灰度级用数值区间[0,255]来表示。其中,数值[255]表示纯白色,数值[0]表示纯黑色,每个像素点占用...

k903161661的博客 1012

ISP一键下载电路分析+74HC1G66GW(信号图)

之前要不用的最小系统的开发板要不就是用的SWD调试口,没有注意过ISP一键下载电路是个怎么回事,因为需要就简单的看了一下野火的ISP一键下载电路。 默认情况一下,一般我们的程序都是从用户闪存也就是内部的FLASH启动的, 对于F103RCT6来说ROM的大小是512kb,启动地址位0x8000000,这个在IDE keil里可以看的到,如下图。 首先简单理解一下ISP是什么: 可以把他理解为芯片厂商出场时固化在ROM当中的一段程序,它的功能就是把你写的程序一点点的搬运到FLASH当中,它引出了两个引脚

lipengyu1363658871的博客 4862

图像处理反向投影原理

反向投影的作用是什么? 反向投影用于在输入图像(通常较大)中查找特定图像(通常较小或者仅1个像素,称为模板图像)最匹配的点或者区域,也就是定位模板图像出现在输入图像的位置。 直接看原文 https://blog.youkuaiyun.com/yee_yj/article/details/6035913 具体过程就是: 假设我们有一张100x100的输入图像,有一张10x10的模板图像,查找的过程...

sinat_31608641的博客 2509

人类肠道微生物群落代谢建模

MICOMWeb 是款用户友好型网站,专为人类肠道微生物群落代谢建模设计。该网站旨在解决基因组尺度代谢模型(in silico)构建过程中的3大限制:① 使用 MICOM Python 包进行通量平衡分析时对用户 Python 编程知识的要求;② 支持预定义和用户自定义饮食,以生成专属代谢模型;③ 处理宏基因组鸟枪法测序或 16S 扩增子测序获得的真实丰度数据时,所需的高通量计算基础设施。本文展示了 MICOMWeb 的核心功能,用户可轻松开展虚拟实验,为3个已发表数据集的实验验证生成功能性假设。

多组・学・多组学 1171

保姆级避坑指南:在NVMe SSD上安装Ubuntu 24.04,搞定RST错误和分区方案

本文提供在NVMe SSD上安装Ubuntu 24.04的详细指南,解决RST错误和分区方案问题。从BIOS设置到分区策略优化,帮助用户充分发挥NVMe固态硬盘性能,避免常见安装陷阱,实现无痛安装和后期调优。

weixin_26976635的博客 563

OpenCV-图像处理(26、直方图反向投影(Back Projection))

反向投影 反向投影是反映直方图模型在目标图像中的分布情况(此直方图模型是由目标图像计算生成的) 简单点说就是用直方图模型去目标图像中寻找是否有相似的对象。通常用HSV色彩空间的HS两个通道直方图模型 反向投影 – 步骤 建立直方图模型 计算待测图像直方图并映射到模型中 从模型反向计算生成图像 实现步骤与相关API 加载图片imread 将图像从RGB色彩空间转换到HSV色彩空间cvtC...

Micheal 超 的博客 1651

Cadence17.4 Allegro PCB制板(gerber / 光绘)文件输出的顺序及注意点

Cadence Allegro PCB制板文件输出 (gerber 光绘文件输出)

weixin_45331044的博客 1万+

图像处理:直方图——反向投影 OpenCV v4.8.0

下面是使用样本图像(猜猜是什么?另一只手)输出的结果。在本教程中,你将学习。

hirshdz327的博客 286

Electron - Electron failed to install correctly, please delete node_modules/electron and try install

Electron安装失败:Electron failed to install correctly, please delete node_modules/electron and try installing again,electron安装报错:Electron failed to install correctly...解决方案,Electron 未能正确安装,请删除 node_modules/electron,然后再次尝试安装,如何解决这个问题,手把手教你解决,在yarn dev时报错,electr

🏆 前端领域优质创作者 4370

贝叶斯网络 (Bayesian Networks) 原理与代码实例讲解

贝叶斯网络 (Bayesian Networks) 原理与代码实例讲解 1. 背景介绍 1.1 什么是贝叶斯网络? 贝叶斯网络(Bayesian Networks)是一种基于概率论的图形模型,用于表示随机

AI天才研究院 1334

Opencv图像处理---反向投影

理论 什么是反向投影? 反向投影是一种记录给定图像中的像素点如何适应直方图模型像素分布的方式。 简单的讲, 所谓反向投影就是首先计算某一特征的直方图模型,然后使用模型去寻找图像中存在的该特征。 如果你有一个肤色直方图 ( Hue-Saturation 直方图 ),你可以用它来寻找图像中的肤色区域。 反向投影的工作原理? 假设你已经通过下图得到一个肤色直方图(Hue-Saturation)...

LYKymy的博客 953

华为OD 面试手撕代码真题【判断链表是否有环】

华为OD 面试手撕代码真题【判断链表是否有环】

MISAYAONE的博客 7239

【opencv学习笔记】027之直方图反向投影 - calcBackProject函数详解

一、前言 在学习直方图反向投影之前,如果你对直方图的概念,直方图均衡化,直方图计算等直方图相关的概念比较模糊,建议先了解一下 1.直方图概念及直方图均衡化 https://blog.youkuaiyun.com/shuiyixin/article/details/80001756 2.直方图计算 https://blog.youkuaiyun.com/shuiyixi...

水亦心的博客 9906

使用Open3D进行RGB-D图像点云处理

在本文中,我们将使用Open3D来处理RGB-D图像,提取点云并进行一些基本的操作。总结起来,本文介绍了如何使用Open3D库处理RGB-D图像并提取点云。我们展示了如何读取RGB-D图像,创建RGB-D图像和点云,并显示点云。除了显示点云,Open3D还提供了许多其他功能,如点云滤波、点云配准、表面重建等。在创建RGB-D图像时,我们需要指定深度图像的缩放因子和截断值,以及是否将RGB图像转换为强度图像。希望本文能够帮助您入门Open3D,并在处理RGB-D图像和点云数据时提供一些指导。

QfcaLinux的博客 446

STM32F407中文手册

STM32f407中文手册 本参考手册面向应用开发人员,提供有关使用 STM32F405xx/07xx、STM32F415xx/17xx、 STM32F42xxx 和 STM32F43xxx 微控制器存储器与外设的完整信息。STM32F405xx/07xx、STM32F415xx/17xx、STM32F42xxx 和 STM32F43xxx 构成一个微 控制器系列,各产品具有不同的存储器大小、封装和外设。有关订购信息以及器件的机械与电气特性,请参见数据手册。有关 ARM Cortex™-M4F 内核的信息,请参见《Cortex™-M4F 技术参考手册》。

Python opencv图像处理基础总结(三) 图像直方图 直方图应用 直方图反向投影

python与opencv进行图像处理基础总结,图像直方图的绘制;直方图应用,利用直方图均衡化可以实现增强图像对比度的效果,还可以利用直方图比较来对比两张图像相似度;直方图反向投影,用于图像分割或查找图像中感兴趣的对象。

叶庭云 成为自己的光 3533

jre9下载 jdk9

(Java SE Runtime Environment 9.0) 9.0u175 官方最新版 【x86|x64】

opencv_python直方图反向投影原理解析

opencv_python直方图反向投影

weixin_66412464的博客 1562

数学建模模型总结

这是本人在两年内准备参加数学建模竞赛搜集到的模型资料,已经经过了本人的筛选和整理,希望能够对准备参加数学建模竞赛的学弟学妹们提供一些帮助!

win10 跳过U8环境检测的IE WebControls.rar

win10 安装u8的时候 提示IE WebControls 不通过,这个工具可以欺骗u8的检查。 跳过U8环境检测的IE WebControls。提示导入失败后,重新检测通过。

OpenCV-Python(22):直方图反向投影

直方图反向投影是一种基于图像颜色分布的图像处理技术,它通过计算图像中不同区域的颜色直方图,并将其与目标区域的直方图进行比较,从而实现目标的识别和分割。本文将介绍直方图反向投影的原理和应用,并探讨其在计算机视觉任务中的重要性。

图灵追幕者博客录 1371

OpenCV python 图像直方图均衡化 calcBackProject反向投影

1、图像直方图 import cv2 as cv import numpy as np from matplotlib import pyplot as plt # 将传入图像变成灰度图 # 对于每一级别的灰度,0到255 # 统计图里占有多少像素点 # 比如灰度14占有123个像素点 # 返回np矩阵,表示0到255灰度占有的像素点个数 def custom_hist(image): ...

q742971636的博客 1704

图像直方图反向投影,Python OpenCV 取经之旅第 28 天

这是一篇没有学到 cv2.calcBackProject 函数怎么用的文章

梦想橡皮擦,专栏100例写作模式先行者,现象级专栏 《Python 爬虫 100 例》作者、《滚雪球学 Python 专栏》原创者 2万+

opencv进阶学习笔记7:直方图,直方图均衡化,直方图比较,直方图反向投影

基础版传送门: python3+opencv学习笔记汇总目录(适合基础入门学习) 直方图基础讲解: opencv学习笔记21:直方图和掩膜 原理及其应用 图像直方图 numpy实现 函数:hist(数据源,像素级) 数据源:图像,必须是一维数组 像素级:一般是256,指[0-255] np.raval()可以实现多维数组转一维。 import cv2 as cv import numpy as np from matplotlib import pyplot as plt def plot_demo(im

总裁余(余登武)博客 1845

Python-OpenCV图像处理-11-图像的直方图的反向投影

直方图反向投影用于图像分割或查找图像中感兴趣的对象,简单来说,它会创建一个与输入图像大小相同(单个通道)的图像,其中每个像素对应于属于我们对象该像素的概率.输出图像将使我们感兴趣的对象比其余部分更明显. 首先,我们创建一个包含我们感兴趣对象的图像的直方图,对象应尽可能填充图像以获得更好的结果,颜色直方图比灰度直方图更受青睐,因为对象的颜色比灰度强度更能定义对象,然后我们将这个直方图“反投影”到我...

Vuko_Coding Zone 844

python+opencv 直方图反向投影

直方图反向投影 1、先把RGB色彩空间转换为HSV色彩空间 2、计算样本的2D直方图 3、对样本直方图作归一化 4、对目标图像作反向投影 import cv2 as cv import numpy as np from matplotlib import pyplot as plt def back_project_demo(): sample = cv.imread('C...

Acmer_future_victor的博客 390

OpenCV反向投影直方图的应用与代码实战

OpenCV反向投影直方图的应用与代码实战(包含详细的完整的程序和数据)资源-优快云文库 https://download.youkuaiyun.com/download/xiaoxingkongyuxi/89872678。我们将提供完整的代码示例,讲解每一步的实现,同时探讨未来的改进方向和注意事项。本文介绍了基于反向投影直方图的图像内容检测方法,通过计算目标区域的直方图实现了在新图像中检测特定对象的效果。目标区域的选择对检测效果至关重要,选择包含代表性特征的区域。使用反向投影技术检测图像中的特定内容。

优质创作者: 人工智能技术领域 对于有一定基础的 MATLAB和Python带具体需求都可以详谈 MATLAB和Python可以提供代码调试服务加油 谢谢 你的鼓励是我前行的动力 谢谢支持 加油 谢谢 1201

opencv python 直方图反向投影_opencv 直方图反向投影

直方图反向投影式通过给定的直方图信息,在图像找到相应的像素分布区域,opencv提供两种算法,一个是基于像素的,一个是基于块的。使用方法不写了,可以参考一下几个网站:测试例子1:灰度直方图反向投影灰度直方图反向投影IplImage * image= cvLoadImage("22.jpg");IplImage * image2= cvLoadImage("2.jpg");int hist_size...

weixin_30928785的博客 211

opencv python 直方图反向投影_Python OpenCV处理图像之图像直方图和反向投影

本文实例为大家分享了Python OpenCV图像直方图和反向投影的具体代码,供大家参考,具体内容如下当我们想比较两张图片相似度的时候,可以使用这一节提到的技术关于这两种技术的原理可以参考我上面贴的链接,下面是示例的代码:0x01. 绘制直方图import cv2.cv as cvdef drawGraph(ar,im, size): #Draw the histogram on the imag...

weixin_42318225的博客 206
上一篇: python + opencv图像处理(十二)——直方图应用
下一篇: python + opencv图像处理(十四)模板匹配
xiao黄
xiao黄 优质创作者: 人工智能技术领域 优质创作者: 人工智能技术领域 领域专家: 数据科学与机器学习技术领域 领域专家: 数据科学与机器学习技术领域
博客等级 码龄8年 1万+粉丝 250原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

xiao黄

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值