目录

1 目标

2原理:什么是反向投影?

3 代码实现

4 实现结果


1 目标

  • 什么是反向投影,它可以实现什么功能?

  • 如何使用OpenCV函数 calcBackProject 计算反向投影?

  • 如何使用OpenCV函数 mixChannels 组合图像的不同通道?

2原理:什么是反向投影?

  • 反向投影是一种记录给定图像中的像素点如何适应直方图模型像素分布的方式。

  • 简单的讲, 所谓反向投影就是首先计算某一特征的直方图模型,然后使用模型去寻找图像中存在的该特征。

  • 例如, 你有一个肤色直方图 ( Hue-Saturation 直方图 ),你可以用它来寻找图像中的肤色区域:

3 代码实现

实例1:

//src = imread("C:\\Users\\guoqi\\Desktop\\ch7\\4.jpg", 1);
​
#include "opencv2/imgproc/imgproc.hpp"
#include "opencv2/highgui/highgui.hpp"
​
#include <iostream>
​
using namespace cv;
using namespace std;
​
/// 全局变量
Mat src; Mat hsv; Mat hue;
int bins = 25;
​
/// 函数申明
void Hist_and_Backproj(int, void*);
​
/** @函数 main */
int main(int argc, char** argv)
{/// 读取图像src = imread("C:\\Users\\guoqi\\Desktop\\ch7\\4.jpg", 1);/// 转换到 HSV 空间cvtColor(src, hsv, CV_BGR2HSV);
​/// 分离 Hue 通道hue.create(hsv.size(), hsv.depth());int ch[] = { 0, 0 };mixChannels(&hsv, 1, &hue, 1, ch, 1);
​/// 创建 Trackbar 来输入bin的数目char* window_image = "Source image";namedWindow(window_image, CV_WINDOW_AUTOSIZE);createTrackbar("* Hue  bins: ", window_image, &bins, 180, Hist_and_Backproj);Hist_and_Backproj(0, 0);
​/// 现实图像imshow(window_image, src);
​/// 等待用户反应waitKey(0);return 0;
}
​
​
/**
* @函数 Hist_and_Backproj
* @简介:Trackbar事件的回调函数
*/
void Hist_and_Backproj(int, void*)
{MatND hist;int histSize = MAX(bins, 2);float hue_range[] = { 0, 180 };const float* ranges = { hue_range };
​/// 计算直方图并归一化calcHist(&hue, 1, 0, Mat(), hist, 1, &histSize, &ranges, true, false);normalize(hist, hist, 0, 255, NORM_MINMAX, -1, Mat());
​/// 计算反向投影MatND backproj;calcBackProject(&hue, 1, 0, hist, backproj, &ranges, 1, true);
​/// 显示反向投影imshow("BackProj", backproj);
​/// 显示直方图int w = 400; int h = 400;int bin_w = cvRound((double)w / histSize);Mat histImg = Mat::zeros(w, h, CV_8UC3);
​for (int i = 0; i < bins; i++){rectangle(histImg, Point(i*bin_w, h), Point((i + 1)*bin_w, h - cvRound(hist.at<float>(i)*h / 255.0)), Scalar(0, 0, 255), -1);}
​imshow("Histogram", histImg);
} 

4 实现结果

实例1运行结果:

【OpenCV 】反向投影相关推荐

  1. OpenCV学习(二十二) :反向投影:calcBackProject(),mixChannels()

    OpenCV学习(二十二) :反向投影:calcHist(),minMaxLoc(),compareHist() 参考博客: 反向投影backproject的直观理解 opencv 反向投影 颜色直方 ...

  2. OpenCV中直方图反向投影算法详解与实现

    点击上方"小白学视觉",选择加"星标"或"置顶" 重磅干货,第一时间送达本文转自:opencv学堂 一:直方图交叉 OpenCV中直方图反向 ...

  3. OpenCV之imgproc 模块. 图像处理(4)直方图均衡化 直方图计算 直方图对比 反向投影 模板匹配

    直方图均衡化 目标 在这个教程中你将学到: 什么是图像的直方图和为什么图像的直方图很有用 用OpenCV函数 equalizeHist 对图像进行直方图均衡化 原理 图像的直方图是什么? 直方图是图像 ...

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

    基础版传送门: python3+opencv学习笔记汇总目录(适合基础入门学习) 进阶版笔记目录链接: python+opencv进阶版学习笔记目录(适合有一定基础) 直方图基础讲解: opencv学 ...

  5. opencv 直方图_OpenCV之图像直方图反向投影

    python代码: import cv2 as cv import numpy as np from matplotlib import pyplot as pltdef back_projectio ...

  6. opencv 直方图反向投影

    转载至:http://www.cnblogs.com/zsb517/archive/2012/06/20/2556508.html 直方图反向投影式通过给定的直方图信息,在图像找到相应的像素分布区域, ...

  7. opencv python 直方图反向投影_python OpenCV学习笔记直方图反向投影的实现

    本文介绍了python OpenCV学习笔记直方图反向投影的实现,分享给大家,具体如下: 它用于图像分割或寻找图像中感兴趣的对象.简单地说,它创建一个与我们的输入图像相同大小(但单通道)的图像,其中每 ...

  8. OpenCV中反向投影

    OpenCV中反向投影 首先要说的可能要说的就是反向投影,用一个看到的例子来说可能更直观一些. [1234567891011129101315]\begin{bmatrix}1&2&3 ...

  9. Mean Shift算法(2)在OpenCV上的实现目标跟踪——直方图反向投影

    直方图反向投影 直方图反向投影的结果是一个概率分布图,表示一个指定图像片段出现在特定位置的概率.假设我们已经知道图像中某个物体的大致位置,就可以用概率分布图找到物体的准确位置.最可能出现的位置就是窗口 ...

最新文章

  1. Android强制设置横屏或竖屏
  2. 动手实践系列:CV语义分割!
  3. 对于非阻塞socket的可写事件
  4. 用numpy,matplotlib库画笛卡尔爱心曲线
  5. risc系统服务器,精简的高端 解析四大RISC服务器处理器
  6. 辐射避难所服务器维护,《辐射:避难所Online》6月2日停服维护更新公告
  7. openlayer xyz加载_webGIS实践:3_1_openlayer展绘点线面注记
  8. 电脑java语言有什么用_Java语言是什么?_Java语言有什么优点
  9. mybatis开启字段自动映射为java驼峰命名规则
  10. idea 自动生成mybaits_如何让idea自动创建mybatis配置文件?
  11. docker安装mysql redis_使用docker安装mysql和redis
  12. ENVI/IDL 批量裁剪同一地区的多幅影像-第五篇
  13. 去除字符串中所包含的空格(包括:空格(全角,半角)、制表符、换页符等)
  14. 新的开始 LibreOJ - 10066(最小生成树模板)
  15. Adobe又逆天!不用机器学习,用13.5M软件把《长安十二时辰》变成水墨动画
  16. python趣味小工具,图片转Execl,图片转TXT工具
  17. 【技术认证题库】SCCA理论HCI-2考试【初级】
  18. vue中base64图片展示提示 图片报错:GET data:image/png;base64,undefined net::ERR_INVALID_URL
  19. numpy安装出错等一系列问题
  20. Baumer工业相机堡盟相机VLXT-90M.I如何做平场校正阴影校正:消除图像明暗不均匀现象

热门文章

  1. linux系统安装deamonsync,DAEMON Sync的使用心得体会。简易版家庭云服务器!正是我要的那种...
  2. 中学计算机课 打字教案,初中信息技术《打字练习—易语言应用》教案
  3. Awcing算法---区间合并
  4. html当作附件发送,MIME以HTML文件作为附件发送电子邮件?
  5. 如何获取元素在父级div里的位置_前端面试题--元素的BFC特性和实例
  6. C语言字符串哪个头文件,如果在程序中要使用C语言的字符串处理函数,应在程序中包含这哪个头文件。...
  7. 线性代数--矩阵、向量
  8. 咕泡学院:(1)唐宇迪python课程作业
  9. 4层板到12层板叠层经典设计方案
  10. 【目标检测】(5) YOLOV1 目标检测原理解析