Python-OpenCV(1)

前面的几个博客写的乱七八糟的,一来是初学数字图像,二是之前没有写过博客,所以对不起之前看我博客的各位啦!!!!!!

现在决定使用python重新写这个系列,不再使用Matlab作为工具,原因有一下几点:

<1> 学习Python <2> 可以使用Numpy、Matplotlib等,效果不逊色于Matlab <3> 工作环境转为Linux(Ubuntu14.04),Matlab懒的装

环境说明:

(1) 使用OpenCV作为图像处理库,不再使用PIL,原因很简单,PIL相比OpenCV就是个渣

(2) 使用OpenCV的python版本接口,不使用C++版本

(3) 使用Ubuntu14.04作为OS,结合Numpy,Matplotlib使用

华丽的分割线

安装OpenCV

OpenCV下载地址,推荐下载2.4版本以上的,我使用的是2.4.8版本的

大家可以参考这篇文章来安装好OpenCV,或者大家使用我提供的OpenCV,下面我会说怎么安装

我的so文件的下载地址,大家先下载下来,将其放入到python搜索路径下即可

如何查看自己的python搜索路径????

选择个路径放下去就行了,我的是/usr/lib/python2.7/dist-packages,很简单的吧

测试下:

import没有出错的话,表示已经好了,恭喜!!!!

图像的读入、显示、保存

cv2.imread() # 图像读入 cv2.imshow() # 图像显示 cv2.imwrite() # 图像保存

示例代码:

__author__ = 'gavinzhou'
# -*- coding: utf-8 -*-

import cv2
import os

# 获得图像路径
img_path = os.path.join(os.getcwd(), 'images', '0.jpg')

# 读入灰度图
img_gray = cv2.imread(img_path, cv2.IMREAD_GRAYSCALE)

# 读入彩图
img_color = cv2.imread(img_path, cv2.IMREAD_COLOR)

# 显示图片
cv2.imshow('grayPic', img_gray)
cv2.imshow('colorPic', img_color)

# 等待用户输入
cv2.waitKey(5000)
# 销毁所有窗口
cv2.destroyAllWindows()

效果是:

OpenCV中的绘图函数

cv2.line() # 直线 cv2.circle() # 圆 cv2.rectangle() # 矩形 cv2.ellipse() # 椭圆 cv2.putText() # 输入文字 等

可以设置诸如: color*thicknesslinetype之类的参数

函数原型(C++):

void cvLine( CvArr* img, CvPoint pt1, CvPoint pt2, CvScalar color, int thickness=1, int line_type=8, int shift=0 )

void cvRectangle( CvArr* img, CvPoint pt1, CvPoint pt2, CvScalar color,int thickness=1, int line_type=8, int shift=0 ;CvSize min_size=cvSize(0,0);CvSize max=cvSize(0,0))

可以看出使用的方法大概是: 需要画图的背景,起点,终点,颜色,粗细等等

示例:

__author__ = 'gavinzhou'
# -*- coding: utf-8 -*-

import cv2
import os
import numpy as np

# 使用numpy初始化一个全黑的图,不了解的可以看我的博客
background = np.zeros((512, 512, 3), dtype=np.uint8)

# 画红线
cv2.line(background, (0, 0), (511, 511), thickness=5, color=(255, 0, 0))

# 画绿色矩形
cv2.rectangle(background, (10, 10), (100, 100), color=(0, 255, 0), thickness=5)

# 画半个椭圆
cv2.ellipse(background, (256, 256), (100, 50), 0, 0, 180, 255, -1)

# 输入紫色的"OpenCV"文字
cv2.putText(background, 'OpenCV', (30, 200), cv2.FONT_ITALIC, 4, color=(255, 0, 255), thickness=5)

cv2.imshow('IMG', background)
cv2.waitKey(5000)
cv2.destroyAllWindows()

结果:

本文参与腾讯云自媒体分享计划,欢迎正在阅读的你也加入,一起分享。

发表于

我来说两句

0 条评论
登录 后参与评论

相关文章

来自专栏CDA数据分析师

Python验证码识别处理实例

一、准备工作与代码实例 1、PIL、pytesser、tesseract (1)安装PIL:下载地址:http://www.pythonware.com/pro...

2009
来自专栏逸鹏说道

临时处理小记:把Numpy的narray二进制文件转换成json文件

临时处理一个Numpy的二进制文件,分析知道里面是dict类型,简单小记一下,如果Numpy和Python基础不熟悉可以看我之前写的文章(贴一下Numpy的)

733
来自专栏梦里茶室

毫秒级检测!你见过带GPU的树莓派吗?

树莓派3B+英特尔神经计算棒进行高速目标检测 转载请注明作者梦里茶 ? 代码: 训练数据预处理: https://gist.github.com/ahan...

2.2K7
来自专栏技术碎碎念

LeetCode-62-Unique Paths

A robot is located at the top-left corner of a m x n grid (marked 'Start' in the...

2975
来自专栏ATYUN订阅号

TensorFlow:使用Cloud TPU在30分钟内训练出实时移动对象检测器

是否能够更快地训练和提供对象检测模型?我们已经听到了这种的反馈,在今天我们很高兴地宣布支持训练Cloud TPU上的对象检测模型,模型量化以及并添加了包括Ret...

1215
来自专栏ATYUN订阅号

Machine Box创始人教你快速建立一个ML图像分类器

AiTechYun 编辑:Yining Machine Box的创始人Mat Ryer在medium上分享了一篇博文,意在教你在硬盘上快速的建立一个机器学习图像...

3306
来自专栏人工智能LeadAI

OpenCV人脸识别之二:模型训练

本系列人脸识别文章用的是opencv2,最新版的opencv3.2的代码请参考文章: OpenCV之识别自己的脸——C++源码放送(请在上一篇文章末尾查看) 在...

6246
来自专栏AI研习社

Github 项目推荐 | GAN 非平稳纹理合成

该库是论文「Non-stationary texture synthesis using adversarial expansions.」的官方代码。

743
来自专栏AI研习社

Github 项目推荐 | Basel Face Model 2017 完全参数化人脸

本软件可以从 Basel Face Model 2017 里生成完全参数化的人脸,论文链接: https://arxiv.org/abs/1712.01619 ...

3587
来自专栏用户2442861的专栏

Caffe学习系列(12):训练和测试自己的图片

学习caffe的目的,不是简单的做几个练习,最终还是要用到自己的实际项目或科研中。因此,本文介绍一下,从自己的原始图片到lmdb数据,再到训练和测试模型的整个...

651

扫码关注云+社区