27-直方图反向投影

python opencv 直方图反向投影的方法 主要介绍了python opencv 直方图反向投影的方法,小编觉得挺不错的,现在分享给大家,也给大家做个参考。一起跟随小编过来看看吧 立即下载

直方图反向投影(Histogram Back Projection)

1、反向投影;
2、操作步骤与API;
3、代码演示;

直方图反向投影

1、反向投影是反映直方图模型在目标图像中的分布情况,即用直方图模型去目标图像中寻找是否有相似的对象,实现对特定对象的检测,通常用HSV色彩空间的HS(hue,saturation)两个通道直方图模型;

在这里插入图片描述

直方图反向投影步骤

1、建立直方图模型;
2、计算待测图像直方图并映射到这个模型中;
3、从模型反向计算生成图像;

实现步骤与API

1、反向投影API : calcBackProject;
2、操作步骤:
①加载图片;
②将图像从RGB色彩空间转换到HSV色彩空间;
③计算直方图并归一化(calcHist()、normalize());
④计算反向投影图像(calcBackProject() );
在这里插入图片描述
在这里插入图片描述

Code

#include <opencv2/opencv.hpp>
#include <iostream>

using namespace std;
using namespace cv;

Mat src, hsv, hue;
int bins = 12;
void Hist_And_Backprojection(int, void*);

int main(int argc, char** argv)
{
	src = imread("C:\\Users\\hello\\Desktop\\37.jpg");
	if (!src.data)
	{
		cout << "could not load the image..." << endl;
		return -1;
	}
	namedWindow("input image", WINDOW_AUTOSIZE);
	namedWindow("Histogram image", WINDOW_AUTOSIZE);
	imshow("input image", src);
	//色彩空间转换
	cvtColor(src, hsv, CV_BGR2HSV);

	hue.create(hsv.size(), hsv.depth());
	int nchannels[] = { 0,0 };
	mixChannels(&hsv, 1, &hue, 1,nchannels,1);
	//计算hue的直方图  1维  hue:0-180, saturation:0-256;
	createTrackbar("Histogram Bins:", "input image", &bins, 180, Hist_And_Backprojection);
	Hist_And_Backprojection(0, 0);

	waitKey(0);
	return 0;
}


void Hist_And_Backprojection(int, void*)
{
	//计算直方图并归一化
	float range[] = { 0,180 };
	const float *histRanges = { range };
	Mat h_hist;

	calcHist(&hue, 1, 0, Mat(), h_hist,1, &bins, &histRanges, true, false);
	normalize(h_hist, h_hist, 0, 255, NORM_MINMAX, -1, Mat());  //alpha beta为归一化值的范围 归一化到0到255之间

	Mat backPrjImage;
	calcBackProject(&hue, 1, 0, h_hist, backPrjImage, &histRanges, 1, true);

	imshow("BackProj", backPrjImage);
	
	//绘制直方图
	int hist_h = 400;
	int hist_w = 400;
	Mat histImage(hist_w, hist_h, CV_8UC3, Scalar(0, 0, 0));
	int bin_w = hist_w / bins;

	for (int i = 1; i < bins; i++)
	{
		//-1表示填充矩形
		rectangle(histImage,
			Point((i - 1)*bin_w, cvRound(hist_h - h_hist.at<float>(i - 1) * (400 / 255))),
			//Point((i)*bin_w, cvRound(hist_h - h_hist.at<float>(i) * (400 / 255))),
			Point((i)*bin_w, cvRound(hist_h)),
			Scalar(0, 0, 255), -1);
	}
	imshow("Histogram image", histImage);

	return;
}

效果

在这里插入图片描述

版图提取的spice网表中参数含义及二级效应STI/WPE 寄生电阻、寄生电容可以从版图提出的.sp文件中看, ad area of drain 面积 as area of source pd perimeter of drain 周长,PS PD周长都不计算与栅极接触的部分 ps perimeter of source nrd 漏扩散区等效方块数 nrs 源扩散区等效方块数 sa ... 阅读详情

相关推荐

NPU、CPU和GPU

NPU、CPU和GPU是三种不同类型的处理器,它们各自有不同的设计特点和应用场景。NPU(Neural Processing Unit,神经网络处理单元)是一种专门为加速神经网络计算而设计的处理器。

m0_60697583的博客 1755

【转载】OpenCV-Python系列之直方图反投影(三十七)

本次教程我们将介绍OpenCV直方图部分的最后一个知识点——直方图反投影。 反向投影可以用来做图像分割,寻找感兴趣区间,类似于我们前面讲过的ROI区域分割。它会输出与输入图像大小相同的图像,每一个像素值代表了输入图像上对应点属于目标对象的概率,简言之,输出图像中像素值越高的点越可能代表想要查找的目标。直方图投影经常与camshift(追踪算法)算法一起使用。 更通俗一点,反向投影可以通过颜色直方图来理解,我们检测图像中某个像素点的颜色是否位于直方图中,如果位于则将颜色加亮,通过对图像的检测,得出结果图像,结

weixin_44237705的博客 646

未隔离电源设备使用usb转串口调试导致串口模块爆炸烧坏事故记录

这个事就发生在前两天,我们公司的wifi模块被客户用到了咖啡机上,客户寄了一台整机给我们协助调试,还送了几包咖啡豆,本想着还能打个咖啡喝一喝的,但就在咖啡机刚寄过来第一天,就出事了。而这个事故的发生,竟然仅仅是因为同事接了个串口模块到电脑调试打印导致的。谁也想不到,这个3.3V的供电的wifi模块居然还有这么大的威力。直接将usb转TTL串口模块的转换芯片给爆开了,咖啡机也给弄坏了,据同事描述当时情况就只见到一片火光和一声巨响,状况比较惨烈,所幸的是笔记本电脑没有烧坏,但是直接给崩蓝屏了。 ...

fangye945a的博客 6190

直方图反向投射(Back Projection)详解

** openCV笔记——直方图反向投射(Back Projection)详解 **(本人近期学习图像处理,一路遇到许多问题,多亏得到许多博主博客指点,感激不尽。现学到直方图反向投射,花了半天时间终于搞懂了,故第一次写此博客记录,如有错误,请网友指正) 欢迎使用Markdown编辑器 你好! 这是你第一次使用 Markdown编辑器 所展示的欢迎页。如果你想学习如何使用Markdown编辑器, 可...

Dashuaixiaoping的博客 5350

ShardingSphere分库分表教程,java后端开发面试题

???? 简介:Java领域优质创作者????、优快云哪吒公众号作者✌ 、Java架构师奋斗者???? ???? 扫描主页左侧二维码,加入群聊,一起学习、一起进步 ???? 欢迎点赞 ???? 收藏 ⭐留言 ???? 目录 一、分库分表 二、分库分表的方式 1、垂直分表 2、垂直分库 3、水平分表 4、水平分库 三、分库分表带来的问题 1、学习成本问题 2、事务问题 3、跨节点join问题 4、跨节点的count、order by、group by以及聚合函数问题 5、数据迁移、容量规划、扩

m0_64205716的博客 3015

SBP依赖计算中的蝴蝶效应:一个Prefab修改如何触发全量重建?

本文深入探讨了Unity中SBP(Scriptable Build Pipeline)依赖计算的蝴蝶效应,解析了Prefab修改如何触发全量重建的机制。通过分析Asset与Object的层级关系、依赖计算的三种维度及CacheEntry系统,揭示了全量重建的根本原因,并提供了依赖可视化工具开发、优化策略与最佳实践,帮助开发者提升构建效率。

weixin_29015051的博客 444

(一)OpenCV图像处理基础_25_直方图反向投影

反向投影是反映直方图模型在目标图像中的分布情况。 简单点说就是用直方图模型去目标图像中寻找是否有相似的对象。 通常用HSV色彩空间的HS两个通道直方图模型。 反向投影步骤: ①建立直方图模型 ②计算待测图像直方图并映射到模型中 ③从模型反向计算生成图像 实现步骤: ①加载图片imread ②将图像从RGB色彩空间转换到HSV色彩空间cvtColor ③计算直方图和归一化calcHist与norm...

weixin_45553439的博客 193

Chromium实用技巧篇-如何下载指定版本的Chromium(一)

通过本指南,您已成功掌握如何在Windows系统上下载并安装最新版本的Chromium浏览器。我们详细介绍了从进入Chromium官网,到查找最新版本号,再到下载和安装的每一个步骤。通过这些步骤,您不仅能够体验到最新的浏览器功能,还可以参与开源项目的开发,享受高速、稳定、安全的浏览体验。

守城小轩的技术窝棚 1万+

直方图反向投影(Histogram Backprojection)

直方图反向投影的原理基于以下概念:我们首先要建立一个“目标颜色模型”的直方图,该直方图描述了我们希望检测的对象的颜色分布。然后,我们将这个目标颜色模型与输入图像进行比较,为输入图像的每个像素分配一个分数,以表示该像素属于目标对象的可能性。它的原理基于图像的颜色分布,允许我们在一幅图像中找到与给定对象颜色分布相匹配的区域。在这个示例中,我们首先从输入图像中选择了一个感兴趣的区域(ROI),然后将其转换为HSV颜色空间。函数计算了输入图像的反向投影,以显示目标对象可能存在的区域。

吃葡萄不吐葡萄皮 776

瑞昱RTL8735B开发板深度评测:如何用200元板子搞定1080P视频流+AI推理?

本文深度评测瑞昱RTL8735B开发板(AMB82 MINI),解析其如何在200元预算内实现1080P视频流处理与边缘AI推理。该板搭载0.4TOPS NPU算力,支持H.264/H.265编码,适合物联网开发者构建高性价比边缘计算方案,并详细介绍了硬件架构、AI模型优化及实战项目搭建。

weixin_33712987的博客 520

基于RK3588平台的高分辨率多摄像头系统深度优化:从48M单摄到双摄分时复用的完整解决方案

本文深入解析了RK3588平台的高分辨率摄像头实现方案。重点介绍了:1)RK3588的MIPI PHY硬件架构,包括DCPHY和DPHY的资源配置及工作模式;2)双ISP合成技术,通过并行处理提升48M高分辨率图像的处理能力;3)以OV50C40传感器为例,详细展示了48M单摄系统的硬件连接、I2C设备配置和关键参数设置。文章为开发者提供了从硬件连接到软件配置的完整技术方案,有助于实现高性能嵌入式视觉系统。

FJN110的博客 673

直方图的反向投影的原理详解及OpenCV下的示例源码

直方图的反向投影的原理详解及OpenCV下的示例源码

昊虹AI笔记 2126

反应动力学仿真软件:CHEMKIN_(12).CHEMKIN与其他软件的接口

通过上述介绍,我们详细探讨了如何将 CHEMKIN 与 MATLAB、Python、COMSOL、Aspen Plus 和 Ansys Fluent 等软件工具进行接口配置和数据交互。这些接口不仅能够显著提升 CHEMKIN 在反应动力学仿真中的应用效果,还能充分利用其他软件工具的强大功能,实现更复杂的数据处理和分析。希望这些内容对您在化学反应动力学仿真中的工作有所帮助。

kkchenjj的博客 1137

opencv_27 直方图反向投影

反向投影概念 反向投影步骤 将BGR图像转换为HSV图像 计算H,S,V单通道的直方图 calcHist 归一化直方图nomalize //将直方图的像素点个数限制在 一个范围内(x)轴 反向投影 calcBackProject 拆分通道 //这里取H通道 cvtColor(src, hsv, COLOR_BGR2HSV); hue.create(hsv.size(), hsv.depth()); int channels[] = { 0,0 }; mixChannels(&hsv,.

weixin_41405284的博客 209

OV9734 DATASHEET,完整规格书

OV9734完整规格书,包括电气参数,尺寸规格,寄存器配置表等

廖雪峰Python教程[完整版]

廖雪峰的python教程整理的,已经排好版了,而且还是完整的,适合小白

27.直方图反向投影(Back Projection)

1.主要内容 反向投影 相关步骤和相关API 代码演示 2.什么叫反向投影(此处注意理解图像的数据特征) 反向投影是反映直方图模型在目标图像中的分布情况 简单的讲,就是用直方图模型去目标图像中寻找是否有相似的对象。通常用HSV色彩空间的HS两个通道直方图模型。 3.反向投影的举例以及步骤 (1)直方图模型建立 (2)待检测对象 (3)反向投影对象 反向投影步骤: 1.建立直方图模型...

罗伊的博客 642

计算机控制技术及应用

《计算机控制技术及应用》通过总结作者的科研成果和吸收国内外的先进理论、方法和技术,以计算机控制系统的网络化、开放化、智能化和集成化发展趋势为主线索,主要介绍计算机控制系统的基本概念和计算机控制系统的典型形式,计算机控制系统的数学描述与基本分析方法,以及数字PID控制器、最少拍控制系统、达林算法、状态变量设计法等设计方法及其各种改进算法。重点突出计算机控制系统输入输出通道接口的设计方法和典型控制系统的设计案例与实现方法等。

反向投影

反向投影 计算流程 设有原灰度图像矩阵img: 1 2 3 4 5 6 7 7 9 8 0 1 5 6 7 6 将灰度值划分为如下四个区间: [0,2] [3,5] [6,8] [9,11] 很容易得到这个图像矩阵的直方图hist= 4 4 6 2 好,接下来计算反向投影矩阵: 反向投影矩阵的大小和...

hm成长之路 895

假人有限元模型

假人模型,车辆碰撞假人有限元模型,适合做乘员安全的研究者利用

第27课 直方图反向投射(Back Projection)

文章目录1. 反向投影2. 反向投影的步骤2.1 具体步骤3. 例程 1. 反向投影 反向投影是反映直方图模型在目标图像中的分布情况 简单点说就是用直方图模型去目标图像中寻找是否有相似的对象。通常用HSV色彩空间的HS两个通道的直方图模型。 2. 反向投影的步骤 建立直方图模型 计算待测图像直方图并映射到模型中 从模型反向计算生成图像 2.1 具体步骤 加载图片imread 将图像从R...

weixin_42877426的博客 620

OpenCV基础课程笔记27直方图反向映射

写在前面 这个常用于模板匹配,但是到这一步其实听不懂的实在是太多了…… 反向投影博客(概念理解) https://blog.youkuaiyun.com/fengye2two/article/details/79113560 OpenCV之mixChannels()函数使用说明 https://www.cnblogs.com/ruic/archive/2015/10/31/4926254.html 其实……我看了好多博客也没懂……特别是那个fromTo参数. 代码 #include<iostream> #

爱和九九的博客 298

图片直方图应用-反向投影实例

/* 功能:读入图片,选择合适的ROI区域进行反向投影 (based on opencv4.0 api) 日期:2019-1-16 作者:william jiang */ #include &lt;vector&gt; #include &lt;iostream&gt; #include &lt;opencv2/opencv.hpp&gt; #include &lt;opencv2/imgp...

okgagaga的博客 408

【OpenCV图像处理】1.26 直方图反向投影(Back Projection)

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

Donald Su 438

OpenCV直方图反向投影

原理: 对输入HSV图像某通道计算它的直方图,通过反向投影,把像素区间出现频率高的像素加亮也就是像素值提高,频率低的拉低。 API: 把一张图象某个通道拷贝到另一张图片上特定通道 CV_EXPORTS void mixChannels(const Mat* src, size_t nsrcs, Mat* dst, size_t ndsts, ...

何解然_K|user 516

OpenCV学习27--反向投影

什么是反射投影 反射投影是记录给定图像中像素点如何适应直方图模型像素分布的方式(估计你看了这句话还是不懂)。 英文的解释是这样的:a way of recording how well the pixels of a given image fit the distribution of pixels in a histogram model.(还是不懂?) 简单地讲就是就是先计算某一特征的...

二毛的博客 2264

OPENCV实例:鼠标选择区域进行反向投影

#include <opencv2/opencv.hpp> using namespace cv; using namespace std; #define WINDOW_NAME "【程序窗口】" //为窗口标题定义的宏 void on_MouseHandle(int event, int x, int y, int flags, void* param); ...

想想叫啥名的博客 306

【OpenCV 4开发详解】直方图应用

本文首发于“小白学视觉”微信公众号,欢迎关注公众号 本文作者为小白,版权归人民邮电出版社发行所有,禁止转载,侵权必究! 经过几个月的努力,小白终于完成了市面上第一本OpenCV 4入门书籍《OpenCV 4开发详解》。为了更让小伙伴更早的了解最新版的OpenCV 4,小白与出版社沟通,提前在公众号上连载部分内容,请持续关注小白。 直方图不仅能够表示图像像素的统计特性,应用统计的直方图结果也...

小白学视觉 763

14- OpenCV:像素重映射和直方图相关处理

主要讲解像素重映射,以及直方图相关的知识(直方图的含义,均衡化、计算、比较、反向投影等等)

bigger_belief的博客 1954

《OpenCV3编程入门》学习笔记九:直方图与匹配

一:内容介绍 本节主要介绍OpenCV的imgproc模块的直方图与模板匹配部分: 1. 直方图的计算与绘制 2. 直方图对比 3. 反向投影 4. 模板匹配 二:学习笔记 1. 关于图像的HSV格式,平常老是用RGB了解这个较少,参见:HSL和HSV色彩空间 , 如何通俗地解释色彩三要素:色相、明度、纯度? , 什么是色像?什么是饱和度?什么是色温?什么是色调呢? 。

NodYoung 2921
上一篇: 26-直方图比较
下一篇: 28-模板匹配
hellohake
博客等级 码龄10年 4543粉丝 108原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值