aihot  2017-04-27 21:18:46  OpenCV |   查看评论   
。它是美国艺术家阿尔伯特孟塞尔(Albert H. Munsell,1858-1918)在1898年创制的颜色描述系统。

 

孟塞尔颜色系统的空间大致成一个圆柱形:

南北轴=明度(value,从全黑(1)到全白(10)。

经度=色相(hue)。把一周均分成五种主色调和五种中间色:红(R)、红黄(YR)、黄(Y)、黄绿(GY)、绿(G)、绿蓝(BG)、蓝(B)、蓝紫(PB)、紫(P)、紫红(RP)。相邻的两个位置之间再均分10份,共100份。

距轴的距离=色度(chroma),表示色调的纯度。其数值从中间(0)向外随着色调的纯度增加,没有理论上的上限(普通的颜色实际上限为10左右,反光、荧光等材料可高达30)。由于人眼对各种颜色的的敏感度不同,色度不一定与每个色调和明度组合相匹配。

具体颜色的标识形式为:色相+明度+色度

       在上面的那个评估的网站有这个从flow到color显示的Matlab和。但是感觉C++代码分几个文件,有点乱,然后我自己整理成两个函数了,并配合OpenCV的Mat格式。

       下面的代码是用calcOpticalFlowFarneback来计算稠密光流并且用这个颜色系统来显示的。这个计算稠密光流的方法与其他几个相比还是比较快的,640x480的视频我的是200ms左右一帧,但其他的一般都需要一两秒以上。结果图中,不同颜色表示不同的运动方向,深浅就表示运动的快慢了。

void calcOpticalFlowFarneback(InputArray prevImg, InputArray nextImg,InputOutputArray flow, double pyrScale, int levels, int winsize, intiterations, int polyN, double polySigma, int flags)

大部分参数在论文中都有一套比较好的值的,直接采用他们的就好了。
 

  1. // 法曼回密度光流计算并显示在孟塞尔系统中的颜色
  2.   
  3. // API calcOpticalFlowFarneback()来自OpenCV,这个
  4. // 2D密集光流算法从以下论文:
  5. // Gunnar Farneback。 “基于多项式扩展的两帧运动估计”。
  6. // 而OpenCV源代码位于 ..\opencv2.4.3\modules\video\src\optflowgf.cpp  
  7.   
  8. #include <iostream>  
  9. #include "opencv2/opencv.hpp"  
  10.   
  11. using namespace cv;  
  12. using namespace std;  
  13.   
  14. #define UNKNOWN_FLOW_THRESH 1e9  
  15.   
  16. // 流向量的颜色编码从:
  17. // http://members.shaw.ca/quadibloc/other/colint.htm  
  18. // 此代码修改为:
 

除特别注明外,本站所有文章均为 赢咖4注册 原创,转载请注明出处来自流Optical Flow介绍与OpenCV实现

留言与评论(共有 0 条评论)
   
验证码:
[lianlun]1[/lianlun]