安装Python版本
for Python2:
1 | sudo apt-get install libopencv-dev |
for Python3:
1 | sudo pip3 install opencv-python |
启动摄像头失败
Opencv启动摄像头出现:
1 | libv4l2: error setting pixformat: Device or resource busy |
for Python2:
1 | sudo apt-get install libopencv-dev |
for Python3:
1 | sudo pip3 install opencv-python |
Opencv启动摄像头出现:
1 | libv4l2: error setting pixformat: Device or resource busy |
本教程大多是在VS2010、Opencv2.4.8的环境下进行的,但是笔者亲自实验,发现过程大多大同小异,只是VS对应的OpenCV版本可能不同,这在4.工程库(lib)目录的配置
中有详细介绍。
VS2010不用说,肯定都安装了吧。来说说当前最新的OpenCV版本2.4.8(2014年2月24日),2.4.9 (2014年4月)的下载和安装。与其说是安装,不如叫解压更加合适,因为我们下载的exe安装文件就是一个自解压程序而已。
在官网:http://opencv.org/上找到OpenCV windows版下载下来。
最大似然估计(Maximum likelihood estimation, 简称MLE)和最大后验概率估计(Maximum a posteriori estimation, 简称MAP)是很常用的两种参数估计方法,如果不理解这两种方法的思路,很容易弄混它们。下文将详细说明MLE和MAP的思路与区别。
但别急,我们先从概率和统计的区别讲起。
概率(probabilty)和统计(statistics)看似两个相近的概念,其实研究的问题刚好相反。
概率研究的问题是,已知一个模型和参数,怎么去预测这个模型产生的结果的特性(例如均值,方差,协方差等等)。 举个例子,我想研究怎么养猪(模型是猪),我选好了想养的品种、喂养方式、猪棚的设计等等(选择参数),我想知道我养出来的猪大概能有多肥,肉质怎么样(预测结果)。
图像函数$f(x,y)$在点$(x,y)$的梯度是一个具有大小和方向的矢量,设为$G_x$和$G_y$分别表示$x$方向和$y$方向的梯度,这个梯度的矢量可以表示为:
这个矢量的幅度为
方向角为
对于数字图像而言,相当于对二维离散函数求梯度,如下:
数字图像中,更多的是用差分来近似函数,最简单的梯度近似表达式为:
Gamma变换是对输入图像灰度值进行的非线性操作,使输出图像灰度值与输入图像灰度值呈指数关系:
这个指数即为Gamma。
注意这个$V_{in}$的取值范围为0~1,因此需要先进行归一化,然后取指数。
1
2
3
4
5
6
7 void GetGammaTransLUT(uchar *pLUT, float Gamma, int iLUTLen)
{
for(int i=0;i<iLUTLen;i++)
{
pLUT[i]=(uchar)(pow((float)i/255,Gamma)*255);
}
}
或者:
1 | if (GAMMA_CORRECTION~=1) |