1. calcBackProject_Demo1.cpp 反向投影函数的使用
/**
* @file BackProject_Demo1.cpp
* @brief 示例代码,演示反向投影函数的使用
* @author OpenCV团队
*/
#include "opencv2/imgproc.hpp" // 包括图像处理相关功能的头文件
#include "opencv2/imgcodecs.hpp" // 包括图像编码解码相关功能的头文件
#include "opencv2/highgui.hpp" // 包括高层GUI (图形用户界面) 功能的头文件
#include <iostream> // 包括标准输入输出流相关功能的头文件
using namespace cv; // 使用OpenCV命名空间中的内容,简化代码
using namespace std; // 使用标准命名空间中的内容,简化代码
/// 全局变量
Mat hue; // 创建一个Mat对象用来存储图像的色调(hue)通道
int bins = 25; // 设定直方图的柱子个数为25
/// 函数头
void Hist_and_Backproj(int, void* );
/**
* @function main
*/
int main( int argc, char* argv[] )
{
//! [读取图像]
CommandLineParser parser( argc, argv, "{@input |Back_Projection_Theory0.jpg| 输入图像}" );
samples::addSamplesDataSearchSubDirectory("doc/tutorials/imgproc/histograms/back_projection/images");
Mat src = imread(samples::findFile(parser.get<String>( "@input" )) );
if( src.empty() )
{
cout << "无法打开或找到图像!\n" << endl;
cout << "用法: " << argv[0] << " <输入的图像>" << endl;
return -1;
}
//! [读取图像]
//! [将其转换为HSV颜色空间]
Mat hsv;
cvtColor( src, hsv, COLOR_BGR2HSV );
//! [将其转换为HSV颜色空间]
//! [仅使用色调(Hue)值]
hue.create(hsv.size(), hsv.depth());
int ch[] = { 0, 0 };
mixChannels( &