安装Python版本

for Python2:

1
2
sudo apt-get install libopencv-dev
sudo apt-get install python-opencv

for Python3:

1
sudo pip3 install opencv-python

启动摄像头失败

Opencv启动摄像头出现:

1
2
3
4
5
libv4l2: error setting pixformat: Device or resource busy
HIGHGUI ERROR: libv4l unable to ioctl S_FMT
libv4l2: error setting pixformat: Device or resource busy
libv4l1: error setting pixformat: Device or resource busy
HIGHGUI ERROR: libv4l unable to ioctl VIDIOCSPICT

阅读全文 »

0. 实验环境

本教程大多是在VS2010、Opencv2.4.8的环境下进行的,但是笔者亲自实验,发现过程大多大同小异,只是VS对应的OpenCV版本可能不同,这在4.工程库(lib)目录的配置中有详细介绍。

1.下载和安装OpenCV SDK

VS2010不用说,肯定都安装了吧。来说说当前最新的OpenCV版本2.4.8(2014年2月24日),2.4.9 (2014年4月)的下载和安装。与其说是安装,不如叫解压更加合适,因为我们下载的exe安装文件就是一个自解压程序而已。

在官网:http://opencv.org/上找到OpenCV windows版下载下来。

阅读全文 »

IO模式

Moderr+ww+aa+
Read++++
Write+++++
Create++++
Cover++
Point in the beginning++++
Point in the end++

img

读取文件样例

例如读取以下文档中的数据:

阅读全文 »

最大似然估计(Maximum likelihood estimation, 简称MLE)和最大后验概率估计(Maximum a posteriori estimation, 简称MAP)是很常用的两种参数估计方法,如果不理解这两种方法的思路,很容易弄混它们。下文将详细说明MLE和MAP的思路与区别。

但别急,我们先从概率和统计的区别讲起。

概率和统计是一个东西吗?

概率(probabilty)和统计(statistics)看似两个相近的概念,其实研究的问题刚好相反。

概率研究的问题是,已知一个模型和参数,怎么去预测这个模型产生的结果的特性(例如均值,方差,协方差等等)。 举个例子,我想研究怎么养猪(模型是猪),我选好了想养的品种、喂养方式、猪棚的设计等等(选择参数),我想知道我养出来的猪大概能有多肥,肉质怎么样(预测结果)。

阅读全文 »

介绍已有工作

  • who uses … to
  • who applies … to
  • in […], the author proposes
  • who investigates …
  • a/an … algorithm has been proposed
  • As explored in […],
  • Works such as […]–[…] have demonstrated that … can then be used as

缺点后的转折

  • For this reason
  • Although these proposed algorithms achieve better performance of than …, the drawbacks are still obvious

介绍自我工作

图片模型

模糊图B、潜在图L与模糊核K的关系为:

其中,⊗代表卷积(非周期边界条件),N表示每个像素上的传感器噪声。

我们假设图像的像素值与传感器的辐照度线性相关。潜在图像L代表我们的目标图像;我们的目标是从B中恢复L,而没有对K的具体知识。

自然图像在梯度上满足重尾分布。下图显示了一幅自然图像及其梯度大小的直方图。分布表明,图像主要包含小的或零的梯度,但少数梯度有较大的幅度。我们用零均值高斯混合模型表示梯度的分布。之所以选择这种表示方式,是因为它可以很好地逼近经验分布,同时允许对我们的算法进行易于处理的估计。

阅读全文 »

图像函数$f(x,y)$在点$(x,y)$的梯度是一个具有大小和方向的矢量,设为$G_x$和$G_y$分别表示$x$方向和$y$方向的梯度,这个梯度的矢量可以表示为:

这个矢量的幅度为

方向角为

对于数字图像而言,相当于对二维离散函数求梯度,如下:

数字图像中,更多的是用差分来近似函数,最简单的梯度近似表达式为:

阅读全文 »

什么是Gamma变换

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
2
3
4
5
6
if (GAMMA_CORRECTION~=1)
%%% gamma correct actual image
obs_im = (double(obs_im).^(GAMMA_CORRECTION))/(256^(GAMMA_CORRECTION-1));
else
obs_im = double(obs_im);
end

阅读全文 »