1.下载opencv安装包
首先先去opencv官网(http://opencv.org/downloads.html)下载linux版本的opencv压缩包,此处下载的opencv3.1版本的。
进入opencv下载的文件夹,解压
unzip opencv-3.1.0.zip
进入opencv-3.1.0目录,创建编译目录,编译,命令如下:
cd ~/ opencv-3.1.0
mkdir release
cd release
cmake -D CMAKE_BUILD_TYPE=RELEASE -D CMAKE_INSTALL_PREFIX=/usr/local ..
make
sudo make install
上述编译成功之后,终端部分显示如下:
2.测试opencv
输入如下命令:
mkdir ~/opencv-test
cd ~/opencv-test
gedit DisplayImage.cpp
编辑如下代码
#include
#include
using namespace cv;
int main(int argc, char** argv )
{
if ( argc != 2 )
{
printf("usage: DisplayImage.out
return -1;
}
Mat image;
image = imread( argv[1], 1 );
if ( !image.data )
{
printf("No image data \n");
return -1;
}
namedWindow("Display Image", WINDOW_AUTOSIZE );
imshow("Display Image", image);
waitKey(0);
return 0;
}
创建CMake编译文件
gedit CMakeLists.txt
写入如下内容
cmake_minimum_required(VERSION 2.8)
project( DisplayImage )
find_package( OpenCV REQUIRED )
add_executable( DisplayImage DisplayImage.cpp )
target_link_libraries( DisplayImage ${OpenCV_LIBS} )
编译
cd ~/opencv-test
cmake .
make
执行
此时opencv-test文件夹中已经产生了可执行文件DisplayImage,随便从网上下载一张图片放在opencv-test文件夹下,此处下载了opencv.jpg,然后运行
./DisplayImage opencv.jpg
结果
3.安装python-opencv
可直接使用apt安装
sudo apt-get install python-opencv
sudo apt-get install python-numpy
测试:
打开python,importcv模块成功即可。
import cv
结果如下:
https://blog.csdn.net/qq_26898461/article/details/50454497
转 OpenCV Python教程系列
参考: OpenCV - sunny2038的专栏 - 博客频道 - CSDN.NET http://blog.csdn.net/sunny2038/article/category/904451
2016-01-07 11:41:50
阅读数:2652
评论数:0
原 Python下opencv使用笔记系列
参考: opencv+python - 我爱智能 - 博客频道 - CSDN.NET http://blog.csdn.net/on2way/article/category/5630773
2016-01-06 16:42:46
阅读数:842
评论数:0
转 Python-OpenCV 杂项(三): 程序性能的检测和优化
在图像处理的中每秒钟都要进行大量的运算,所以对程序的要求不仅要能给出正确的结果,同时还需要快。 0x00. 获取程序执行时间 cv2.getTickCount 函数返回从参考点到这个函数被执行的时钟数。所以当在一个函数执行前后都调用它的话,就会得到这个函数的执行时间(时钟数)。 使用示例: ...
2016-01-04 10:43:58
阅读数:993
评论数:0
转 Python-OpenCV 杂项(二): 鼠标事件
0x00. 查看鼠标事件 下面的方法可以查看OpenCV支持的所有鼠标事件: import cv2 events=[i for i in dir(cv2) if 'EVENT'in i] print events 输出结果: ['EVENT_FLAG_ALTKEY', 'EVENT_F...
2016-01-04 10:43:15
阅读数:4195
评论数:0
转 Python-OpenCV 杂项(一):图像绘制
0x00. 绘制直线 import numpy as np import cv2 img = np.zeros((512,512,3), np.uint8) cv2.line(img,(0,0),(511,511),(255,0,0),5) cv2.imshow('image',img) cv...
2016-01-04 10:42:21
阅读数:1013
评论数:0
转 Python-OpenCV 处理图像(五):图像中边界和轮廓检测
关于边缘检测的基础来自于一个事实,即在边缘部分,像素值出现”跳跃“或者较大的变化。如果在此边缘部分求取一阶导数,就会看到极值的出现。 而在一阶导数为极值的地方,二阶导数为0,基于这个原理,就可以进行边缘检测。 关于 Laplace 算法原理,可参考 Laplace 算子 0x0...
2016-01-04 10:40:39
阅读数:11698
评论数:2
转 Python-OpenCV 处理图像(四):图像直方图和反向投影
当我们想比较两张图片相似度的时候,可以使用这一节提到的技术 直方图对比 反向投影 关于这两种技术的原理可以参考我上面贴的链接,下面是示例的代码: 0x01. 绘制直方图 import cv2.cv as cv def drawGraph(ar,im, size): #D...
2016-01-04 10:37:58
阅读数:949
评论数:0
转 Python-OpenCV 处理图像(三):图像像素点操作
0x01. 像素 有两种直接操作图片像素点的方法: 第一种办法就是将一张图片看成一个多维的list,例如对于一张图片im,想要操作第四行第四列的像素点就直接 im[3,3] 就可以获取到这个点的RGB值。 第二种就是使用 OpenCV 提供的 Get1D、 Get2D 等函数。 推荐使用第...
2016-01-04 10:37:17
阅读数:5171
评论数:0
转 Python-OpenCV 处理图像(二):滤镜和图像运算
0x01. 滤镜 喜欢自拍的人肯定都知道滤镜了,下面代码尝试使用一些简单的滤镜,包括图片的平滑处理、灰度化、二值化等: import cv2.cv as cv image=cv.LoadImage('img/lena.jpg', cv.CV_LOAD_IMAGE_COLOR) #Load t...
2016-01-04 10:36:37
阅读数:1369
评论数:0
转 Python-OpenCV 处理图像(一):基本操作
0x00. 图片读、写和显示操作 安装好 OpenCV 之后,首先尝试加载一张最简单的图片并显示出来,代码示例: 第一种方式使用cv2.cv的LoadImage、ShowImage和SaveImage函数 import cv2.cv as cv # 读图片 image=cv.LoadIma...
2016-01-04 10:35:37
阅读数:13105
评论数:3
转 Python-OpenCV 图像与视频处理
转载自: http://segmentfault.com/a/1190000003742481 一直断断续续的用过几次 OpenCV,感觉熟练掌握它的使用方法已经变的非常必要了,正好找到一个很不错的英文教程,就以此为起点,详细记录一下对 OpenCV 的学习过程吧。 Update: ...
2016-01-04 10:28:34
阅读数:1196
评论数:0
转 Python-OpenCV 处理图像(八):图像二值化处理
0x00. 图像二值化 图像二值化就是将图像上的像素点的灰度值设置为0或255,也就是将整个图像呈现出明显的黑白效果。 将256个亮度等级的灰度图像通过适当的阈值选取而获得仍然可以反映图像整体和局部特征的二值化图像。 图像的二值化有利于图像的进一步处理,使图像变得简单,而且数据量减小,能凸显...
2016-01-04 10:26:37
阅读数:3467
评论数:0
转 Python-OpenCV 处理图像(七):图像灰度化处理
为了加快处理速度,在图像处理算法中,往往需要把彩色图像转换为灰度图像。 0x00. 灰度图 灰度数字图像是每个像素只有一个采样颜色的图像,这类图像通常显示为从最暗黑色到最亮的白色的灰度。 灰度图像与黑白图像不同,在计算机图像领域中黑白图像只有黑白两种颜色,灰度图像在黑色与白色之间还有许多级的...
2016-01-04 10:25:42
阅读数:9602
评论数:0
转 Python-OpenCV 处理图像(六):对象识别
0x00. 特征识别 这里主要用到两个函数: GoodFeaturesToTrack 和 extractSURF GoodFeaturesToTrack: 在图像中寻找具有大特征值的角点。 SURF算法: 是一个稳健的图像识别和描述算法。 总之这俩个我目前也不清楚能用来干...
2016-01-04 10:23:32
阅读数:3102
评论数:0
转 Python-OpenCV 处理视频(五): 运动方向判断
在检测出运动的物体之后,我还需要知道运动的方向,使用了上一节中的办法检测运动我发现很难去计算运动方向,开始考虑通过计算轮廓的中点的变化来实现,但是因为每次检测出得轮廓的数量不稳定,所以这个办法会让误差不可控。 这时我发现了goodFeaturesToTrack函数,简直是救了我,goodFeat...
2016-01-04 10:21:48
阅读数:1715
评论数:0
转 Python-OpenCV 处理视频(四): 运动检测
0x00. 平均值法 通过计算两帧图像之间变化了的像素点占的百分比,来确定图像中是否有动作产生。 这里主要用到 Absdiff 函数,比较两帧图像之间有差异的点,当然需要将图像进行一些处理,例如平滑处理,灰度化处理,二值化处理,经过处理之后的二值图像上的点将更有效。 代码示例: impor...
2016-01-04 10:19:57
阅读数:4112
评论数:0
转 Python-OpenCV 处理视频(三): 标记运动轨迹
0x00. 光流 光流是进行视频中运动对象轨迹标记的一种很常用的方法,在OpenCV中实现光流也很容易。 CalcOpticalFlowPyrLK 函数计算一个稀疏特征集的光流,使用金字塔中的迭代 Lucas-Kanade 方法。 简单的实现流程: 加载一段视频。 调用Goo...
2016-01-04 10:10:16
阅读数:3812
评论数:2
转 Python-OpenCV 处理视频(二): 视频处理
0x00. 使用 Canny 算法边缘识别 Canny 算法是一种多级边缘识别算法。 Canny边缘识别算法可以分为以下5个步骤: 应用高斯滤波来平滑图像,目的是去除噪声。 找寻图像的强度梯度(intensity gradients)。 应用非最大抑制(non-maxim...
2016-01-04 10:09:00
阅读数:2939
评论数:0
转 Python-OpenCV 处理视频(一): 输入输出
视频的处理和图片的处理类似,只不过视频处理需要连续处理一系列图片。 一般有两种视频源,一种是直接从硬盘加载视频,另一种是获取摄像头视频。
2016-01-04 10:07:56
阅读数:1742
评论数:0