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 条评论
登录 后参与评论

相关文章

来自专栏视觉求索无尽也

Markdown:插入数学公式

5951
来自专栏友弟技术工作室

Django实现验证码

Django实现验证码 背景知识 1. 验证码的作用 防恶意破解密码:防止,使用程序或机器人恶意去试密码.为了提高用户的体验,用户输入错误以后,才会要求输入验证...

62511
来自专栏计算机视觉及音视频工程

YVU格式Y分量存储为灰度

 Image为Android 5.0以上提供的类,用于保存YUV420格式的集合。

2476
来自专栏生信技能树

第3篇:用MACS2软件call peaks

Peak calling即利用计算的方法找出ChIP-seq或ATAC-seq中reads富集的基因组区域。

5374
来自专栏咸鱼不闲

Python Tesseract 图片识别-小操练

but,Tesseract是老外开发的,默认不支持中文,需要我们加个中文语言包 将文件chi_sim.traineddata (密码:nd6p) 放到安装目录...

1143
来自专栏张善友的专栏

开源OCR引擎Tesseract

知名的开源OCR引擎Tesseract 3.0版本日前发布,可以在项目网站下载:http://code.google.com/p/tesseract-ocr, ...

48510
来自专栏AI科技大本营的专栏

不会用Photoshop抠图?Mask R-CNN助你一键“除”人

翻译 | 林椿眄 编辑 | 费棋 【AI科技大本营导读】:看过英剧《黑镜》吗?圣诞特别版《白色圣诞节》中有这样一个场景:其中一个未来科技有自由屏蔽人像的功能,可...

4057
来自专栏杨熹的专栏

TensorFlow-7-TensorBoard Embedding可视化

学习资料 https://www.tensorflow.org/get_started/summaries_and_tensorboard 今天来看 Tens...

5209
来自专栏数据派THU

独家 | 手把手教数据可视化工具Tableau

前言 数据的世界正在发生急剧变化,任何人都应该访问自己需要的数据,并具备获取任何数据的洞察力,而tableau正是帮我们洞察数据的好帮手。 Tableau作为B...

5067
来自专栏新智元

TensorFlow正式发布1.5.0,支持CUDA 9和cuDNN 7,双倍提速

来源:Github 编译:费欣欣 【新智元导读】TensorFlow今天正式发布了1.5.0版本,支持CUDA 9和cuDNN 7,进一步提速。并且,从1.6版...

3096

扫码关注云+社区