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

相关文章

来自专栏后端技术探索

算法分析:算命测人品等程序的实现

朋友圈中常常被一些测人品或者测星座匹配的分享连接所刷屏,究其核心实现,其实都是相似的算法,今天周末,闲来无事,本猿把曾经帮别人做的一个算命公众号拿出来剖析一番。...

632
来自专栏葡萄城控件技术团队

MultiRow发现之旅(五)- MultiRow版俄罗斯方块(exe + 源码)

前文回顾 MultiRow发现之旅(一)- 高效模板设计器 MultiRow发现之旅(二)- 详解属性管理器 MultiRow发现之旅(三)- 模板管理器和Ta...

1905
来自专栏腾讯大讲堂的专栏

移动页面用户行为报告

1、加载 加载超过5秒就会有74%的用户离开页面。 ? 2、高峰期 中午12点左右和晚上10点左右是页面访问高峰期。 ? 3、页面热度 通过用户口碑扩散的移动页...

1789
来自专栏GopherCoder

『Go 语言学习专栏』-- 第十三期

1732
来自专栏令仔很忙

table合并单元格colspan和rowspan

最近要实现一个成绩分析的功能,最终是要呈现到Word中的,一开始想到的使用报表显示,但是得有单独的数据库表来存储这些数据,如果说项目是刚开始做的话,倒也好说,...

1071
来自专栏web前端教室

【规整】网页怎么做才不会外行?

网页怎么做才不会外行?这句话的意思就是说,你做的网页在浏览器里打开,像我这样的人扫一眼,就能判断出这是一个新手的练手作品?还是一个工作能力可靠的人做的。

772
来自专栏日常学python

20行代码制作字符画版小黄鸭表情包 | 文末送书抽奖结果

前段时间,一只可爱的小黄鸭火起来了,据说是抖音上一位黄衣小姐姐模仿小黄鸭的动作而走红。这只动作呆萌的小黄鸭表情包也跟着火起来了,小黄鸭表情包也由一只变成多只,颜...

772
来自专栏腾讯大数据的专栏

移动页面用户行为报告

1、加载 加载超过5秒就会有74%的用户离开页面。 ? 2、高峰期 中午12点左右和晚上10点左右是页面访问高峰期。 ? 3、页面热度 通过用户口碑扩散的移动页...

2218
来自专栏数据小魔方

创意玫瑰图(Rose chart)

今天跟大家分享的图表是创意玫瑰图! ▽▼▽ 这种图表形似玫瑰,故而得名,其效果与我们常用的饼图,圆环图及雷达图类似。 ? 可以反映数据结构的比例、大小,但因其形...

36210
来自专栏微信终端开发团队的专栏

微信“ 15。。。。。。。。。”来龙去脉

微信 Android 大量用户反馈接收或发送类似“15。。。。”信息会导致微信聊天界面卡死,程序崩溃。我们得知这个问题后,第一时间对这个问题进行了紧急修复并在两...

1.2K3

扫码关注云+社区