本节实现的是使用OpenCV里自带的函数,将两幅图片按照特定的比例融合
实现过程
引用与读取图片
不再赘述,代码如下。
```python
import cv2
import numpy
img1 = cv2.imread('test1.png')
img2 = cv2.imread('test2.png')
```
融合图片
利用addWeighted()函数,将图片1的比例设置为0.6,图片2的0.4,如下:
python
mg_mix = cv2.addWeighted(img1, 0.6, img2, 0.4, 0)
显示图片
分别显示两幅原图和融合后的图片:
```python
cv2.imsh
继续阅读 »
简介
在linuxt系统下使用OpenCV2.3 + NDK R6编译 OpenCV人脸检测应用
more
准备
Android NDK ( r5或更高版本)
下载地址:http://developer.android.com/sdk/ndk/index.html
OpenCV Android包
http://sourceforge.net/projects/opencvlibrary/files/opencv-android/2.3/
cmake(可选,替代NDK)
参考:http://www.cmake.org/
继续阅读 »
本节实现的是使用OpenCV里自带的函数,检测出视频里图像中的蓝色和天蓝色、青色,比如我的手机背景、我衣服上的蓝色格子,墙砖的蓝色和学生证照片上的蓝色背景。
设置“蓝色”HSV范围
BGR转HSV
捕获摄像头视频
获取蓝色部分mask
图像按位与操作
显示蓝色部分图像
实现过程
定义视频对象
视频对象用于捕获摄像头视频流。
``` python
import cv2
import numpy as np
cap = cv2.VideoCapture(0)
```
设置HSV中蓝色、天蓝色范围
这里主要参考了这个博客,我设置的颜色范围如下。
```python
set blue thresh
lower_blue=
继续阅读 »
本节实现的是使用OpenCV里自带的函数,计算程序的执行时间。
获取系统时钟数
获取系统时钟频率
实现过程
初始时间
不再赘述,代码如下。
``` python
time start
t1 = cv2.getTickCount()
```
执行代码
我这里执行的是之前绘制直方图的代码,请参考我的博客和GitHub。
结束时间
获取程序结束时间。
```python
time end
t2 = cv2.getTickCount()
```
计算执行秒数
利用getTickFrequency()获取时钟频率。
python
t = (t2-t1)/cv2.getTickFrequency()
print
继续阅读 »
本节实现的是使用OpenCV里自带的有关滚动条的函数,可以调节R、G、B三个数值,并显示颜色。
回调函数
滚动条设置
显示设置的颜色
实现过程
引用与创建空图
不再赘述,代码如下。
``` python
import cv2
import numpy
empty image
img = np.zeros((512, 512, 3), np.uint8)
```
设置空的回调函数
作为滚动条值变化时的回调函数,这里不需要做任何设置,设置为pass:
```python
callbacks
def nothing(x):
pass
```
创建四个滚动条
其中三个分别为R、G和B,其值范围为0~25
继续阅读 »
本节实现的是使用OpenCV里自带的函数,将一幅logo加到一张图片上去。
提取mask
利用mask生成带logo图片
实现过程
引用与读取图片
不再赘述,代码如下。
``` python
import cv2
import numpy as np
img = cv2.imread('test.png')
logo = cv2.imread('logo.jpg')
cv2.imshow("Img_Original", img)
```
获取mask
先将logo转成黑白,然后设置合适的阈值二值化,使得有内容的部分为黑(0),无内容的部分为白(255),这里使用的阈值为205。
```python
logo_gray
继续阅读 »
本节实现的是读取视频,并显示视频的每一帧以实现视频的播放。
创建摄像头对象,指向文件
逐帧显示实现视频播放
实现过程
引用
不再赘述,代码如下。
python
import cv2
import numpy
创建视频对象
使用opencv自带的VideoCapture()函数定义摄像头对象,其参数0表示第一个摄像头,一般就是笔记本的内建摄像头。
python
cap = cv2.VideoCapture("../test.avi")
逐帧显示实现视频播放
在while循环中,利用视频对象的read()函数读取视频的某帧,并显示,然后等待1个单位时间,如果期间检测到了键盘输入q,则退出,即关闭窗口。
pyt
继续阅读 »
很多对计算机视觉有兴趣的朋友都会了解和使用OpenCV这个知名的开源库。下面然我来介绍一下如何在Mac 上面安装OpenCV3.0 + Python2.7。
Tool:
OpenCV 源码
Python2.7
(PS:Python的版本是随你去选择,本文主要针对的是2.7版本。其实Python大部分的Mac/Linux 系统都是自带的,没有必要在此安装。)
继续阅读 »
本节实现的是使用内建摄像头捕获视频,并显示视频的每一帧以实现视频的播放。
创建摄像头对象
逐帧显示实现视频播放
实现过程
引用
不再赘述,代码如下。
python
import cv2
import numpy
import matplotlib.pyplot as plot
创建摄像头对象
使用opencv自带的VideoCapture()函数定义摄像头对象,其参数0表示第一个摄像头,一般就是笔记本的内建摄像头。
python
cap = cv2.VideoCapture(0)
逐帧显示实现视频播放
在while循环中,利用摄像头对象的read()函数读取视频的某帧,并显示,然后等待1个单位时间,如果期间
继续阅读 »
本节实现的是在图片上模拟机上椒盐噪声,主要过程如下。
打开一个图片
产生随机坐标
加上“椒盐”
显示加噪图片
实现过程
引用
这里我们需要引用cv2和numpy,cv2不言而喻,而NumPy是Python语言的一个扩充程序库。支持高级大量的维度数组与矩阵运算,此外也针对数组运算提供大量的数学函数库。
python
import cv2
import numpy
打开图片
cv2库里的函数imread()用来读取图片,imshow()可用于显示图片,此外imwrite可以用来写图片,即保存图片。这里把显示图片的窗口指定为“Image”。
python
img = cv2.imread("test.png")
加
继续阅读 »