关闭

基于直方图的匹配_视频流

368人阅读 评论(0) 收藏 举报
分类:


#include <opencv2/core/core.hpp>      
#include <opencv2/highgui/highgui.hpp>     
#include <opencv2\opencv.hpp>    
#include<opencv2\imgproc\imgproc.hpp>  
#include <iostream>    
#include<string>    
#include <sstream>    
using namespace cv;    
using namespace std;  
MatND getHistogram(Mat &img)//得到直方图    
{    
	int channels[]={0,1,2};//考察通道    
	int HistSize[3]={16,16,16};//直方图中元素数    
  
	float r_hranges[] = {0, 255};  
    float g_hranges[] = {0, 255};  
    float b_hranges[] = {0, 255};  
    const float *pRange[]={r_hranges, g_hranges, b_hranges}; 
	//计算直方图,直方图结果放在hist.at<float>(i)    
	MatND hist;    
	calcHist(&img,1,channels,Mat(),hist,3,HistSize,pRange);    
	return hist;    
}    

//void getHistogramImage(Mat &image )//画直方图    
//{    
//	MatND hist=getHistogram(image);    
//	double max_val,min_val;    
//	int HistSize[]={256};    
//	minMaxLoc(hist,&min_val,&max_val,0,0);    
//	Mat histImg(cvSize(256*2,300),CV_8U,Scalar(0));    
//	for(int i=0;i<HistSize[0];i++)    
//	{    
//		int val=int(hist.at<float>(i)/max_val*300);    
//		line(histImg,cvPoint(i*2,300),cvPoint(i*2,300-val),cvScalar(255,255,255),1);    
//	}    
//	namedWindow("直方图");    
//	imshow("直方图",histImg);    
//}  
int main()  
{  
	///调用摄像头
	VideoCapture cap(0);  
	if(!cap.isOpened())  
	{  
		return -1;  
	}  
	Mat src;  
	Mat templ;  
	Mat result;
	int match_method=CV_TM_SQDIFF;
	templ=imread("img.jpg",1);
	//getHistogramImage(templ);//输出模板直方图 
	MatND sourceHist=getHistogram(templ); 
	double maxDistance; 
	int best_i,best_j;
	int h_distance=7000;//阈值
	bool stop = false;  

	///循环处理图像
	while(!stop)  
	{  
		maxDistance=0; 
		cap>>src;  

		int T_cols =  src.cols - templ.cols ;
		int T_rows = src.rows - templ.rows;

		for(int i=0;i<T_cols;i=i+5)  
		{
			for(int j=0;j<T_rows;j=j+5)  
			{    

				result=src(Rect(i,j,templ.cols,templ.rows));   

				MatND dstHist=getHistogram(result);//计算各个直方图    
				double distance=compareHist(sourceHist,dstHist,CV_COMP_INTERSECT);//比较直方图    
				// cout<<distance<<endl;    
				if(distance>maxDistance)    
				{    
					best_i=i;
					best_j=j;
					maxDistance=distance;    
				}    
			}   
		}
		if(maxDistance>h_distance)
		{
		Mat best=src(Rect(best_i,best_j,templ.cols,templ.rows))  ;
		//getHistogramImage(best);//输出最优图片直方图    
	    cout<<maxDistance<<endl;
		imshow("BestImage",best);   
		/// 最终结果
		rectangle( src, Point(best_i,best_j), Point( best_i+templ.cols,best_j+templ.rows), Scalar::all(0), 2, 8, 0 );	
		cout<<"目标的中心坐标 ( "<<best_i + templ.cols/2<<" , ("<<best_j+ templ.rows<<" )"<<endl;
		}
		else
		{
			cout<<"未找到目标"<<endl; 
		}
		imshow("当前视频",src);  
		//imshow("result",result);
		
		if(waitKey(300) >=0)  
			stop = true;  
	}  
	waitKey();  
	return 0;  
}


0
0
查看评论
发表评论
* 以上用户言论只代表其个人观点,不代表CSDN网站的观点或立场

【图像处理】基于OpenCV底层实现的直方图匹配

使用OpenCV库、C++,不使用有关直方图的相关OpenCV函数,底层实现的直方图匹配(直方图规定化)算法。包括算法分析实例与测试图像,绝对是理解此蛋疼算法神器!
  • yOung_One
  • yOung_One
  • 2014-10-25 23:57
  • 2779

模板匹配_从图片到视频流

还是先上我的程序吧,实现了对视频流的匹配,在视频中标出目标物体的位置并计算出物体所在的中心坐标: #include #include #include #inclu...
  • hanshuning
  • hanshuning
  • 2015-11-05 17:32
  • 1320

基于内容的图像检索(颜色,直方图相交法,)java实现代码

直方图特征:        对颜色特征的表达方式有许多种,我们采用直方图进行特征描述。常见的直方图有两种:统计直方图,累积直方图。我们将分别实验两种直方图在图像聚类和检索中的性能。 l   ...
  • u014112584
  • u014112584
  • 2014-05-20 14:23
  • 2916

OpenCV-视频流动态特征感兴趣区域检测--模板匹配(MatchingMethod)

在这里,我们做一个模拟智能手机在拍照时候追踪人脸框的一个模型。 追踪的对象如下图所示,是一个红色笔筒  --01.jpg 我们就在是视频流里实时的追中它,并且把它用矩形框标记出来。当然了,...
  • wsLJQian
  • wsLJQian
  • 2017-04-01 20:16
  • 713

模板匹配_从图片到视频流

还是先上我的程序吧,实现了对视频流的匹配,在视频中标出目标物体的位置并计算出物体所在的中心坐标: #include #include #include #inclu...
  • hanshuning
  • hanshuning
  • 2015-11-05 17:32
  • 1320

MATLAB教学视频:空间域图像增强之灰度变换和直方图均衡匹配

  • 2017-02-01 20:22
  • 24.58MB
  • 下载

MATLAB教学视频:空间域图像增强之灰度变换和直方图均衡匹配 课件

  • 2017-02-01 20:33
  • 2.08MB
  • 下载

Linux基于Live555 实现 从网络摄像机获取实时视频流 源码

  • 2017-12-13 13:30
  • 6.65MB
  • 下载

RTSP视频流保存成AVI文件的动态库

  • 2017-11-20 11:04
  • 11.68MB
  • 下载

vlc-android播放rtsp视频流demo

  • 2017-11-18 11:07
  • 40.31MB
  • 下载
    个人资料
    • 访问:323558次
    • 积分:5604
    • 等级:
    • 排名:第5468名
    • 原创:225篇
    • 转载:91篇
    • 译文:0篇
    • 评论:122条
    最新评论