opencv for python

opencv显示图像:

 1  # -*- coding: UTF-8 -*-
 2 import numpy as np
 3 import cv2
 4 from matplotlib import pyplot as plt
 5
 6 img=cv2.imread("cat.png",5)   #载入
 7 cv2.imshow(‘image‘,img)     #显示
 8 k=cv2.waitKey(0)&0xFF     #读取键盘输入,参数为在x毫秒内读取,x=0是无限等待读取
 9 while(k!=27 and k!=ord(‘s‘)):
10     k=cv2.waitKey(0)&0xFF
11 if k==27:
12     cv2.destroyAllWindows()
13 elif k==ord(‘s‘):
14     cv2.imwrite(‘mess.png‘,img)
15     cv2.destroyAllWindows()      #关闭窗口,参数可以为窗口名

opencv载入图像,matplotlib显示:

1  # -*- coding: UTF-8 -*-
2 import numpy as np
3 import cv2
4 from matplotlib import pyplot as plt
5
6 img=cv2.imread(‘cat.png‘)
7 plt.imshow(img)
8 plt.show()

注:彩色图像使用OpenCV 加载时是BGR 模式。但是Matplotib 是RGB模式。所以彩色图像如果已经被OpenCV 读取,那它将不会被Matplotib 正确显示。

简单画图:

 1  # -*- coding: UTF-8 -*-
 2 import numpy as np
 3 import cv2
 4 from matplotlib import pyplot as plt
 5 cv2.namedWindow(‘hello‘)
 6 img=np.zeros((512,512,3),np.uint8) #创建一张空图片
 7 cv2.line(img,(60,90),(511,511),(255,0,0),6);
 8 cv2.rectangle(img,(100,70),(300,300),(100,100,100),5)
 9 cv2.circle(img,(200,200),60,(0,250,0),2)
10 font=cv2.FONT_HERSHEY_SIMPLEX
11 cv2.putText(img,‘opencv‘,(60,400),font,4,(25,25,90),2)
12 cv2.imshow(‘hello‘,img)
13
14 cv2.waitKey(0)
15 cv2.destroyAllWindows()

鼠标事件:

 1  # -*- coding: UTF-8 -*-
 2 import numpy as np
 3 import cv2
 4 from matplotlib import pyplot as plt
 5 #鼠标事件回调函数 函数参数统一如此
 6 def draw_rectangle(event,x,y,flags,param):
 7     if event==cv2.EVENT_LBUTTONDBLCLK:
 8         cv2.rectangle(img,(x,y),(x+30,y+30),(250,20,20),5)
 9
10 img=np.zeros((512,512,3),np.uint8)
11 cv2.namedWindow(‘hello‘)
12 cv2.setMouseCallback(‘hello‘,draw_rectangle)
13 while 1:
14     cv2.imshow(‘hello‘,img)
15     if cv2.waitKey(20)&0xFF==27:
16         break;
17 cv2.destroyAllWindows()

滑动条:

 1 # -*- coding: utf-8 -*-
 2 """
 3 Created on Sun Jan 5 13:51:34 2014
 4 @author: duan
 5 """
 6 import cv2
 7 import numpy as np
 8 def nothing(x):            #滑动条的位置,通常默认为pass
 9     pass
10 # 创建一副黑色图像
11 img=np.zeros((250,512,3),np.uint8)
12 cv2.namedWindow(‘image‘)
13 cv2.createTrackbar(‘R‘,‘image‘,0,255,nothing)    #创建滑动条    ,滑动条名称,显示窗口名称,范围,回调函数
14 cv2.createTrackbar(‘G‘,‘image‘,0,255,nothing)
15 cv2.createTrackbar(‘B‘,‘image‘,0,255,nothing)
16 switch=‘0:OFF\n1:ON‘
17 cv2.createTrackbar(switch,‘image‘,0,1,nothing)
18 while(1):
19     cv2.imshow(‘image‘,img)
20     k=cv2.waitKey(20)&0xFF
21     if k==27:
22         break
23     r=cv2.getTrackbarPos(‘R‘,‘image‘)
24     g=cv2.getTrackbarPos(‘G‘,‘image‘)
25     b=cv2.getTrackbarPos(‘B‘,‘image‘)
26     s=cv2.getTrackbarPos(switch,‘image‘)
27     if s==0:
28         img[:]=100
29     else:
30         img[:]=[b,g,r]
31 cv2.destroyAllWindows()

利用滑动条改变颜色画圆:

 1 # -*- coding: utf-8 -*-
 2 import cv2
 3 import numpy as np
 4 r,b,g=0,0,0
 5 def nothing(x):            #滑动条的位置,通常默认为pass
 6     pass
 7
 8 def draw_circle(event,x,y,flags,param):
 9     if event==cv2.EVENT_LBUTTONDBLCLK:
10         cv2.circle(img1,(x,y),10,(b,g,r),-1)
11
12 # 创建一副黑色图像
13 img=np.zeros((250,512,3),np.uint8)
14 img1=np.zeros((250,512,3),np.uint8)
15
16 cv2.namedWindow(‘image‘)
17 cv2.namedWindow(‘win‘)
18
19 cv2.createTrackbar(‘R‘,‘image‘,0,255,nothing)    #创建滑动条    ,滑动条名称,显示窗口名称,范围,回调函数
20 cv2.createTrackbar(‘G‘,‘image‘,0,255,nothing)
21 cv2.createTrackbar(‘B‘,‘image‘,0,255,nothing)
22
23 cv2.setMouseCallback(‘win‘,draw_circle)
24 while(1):
25     cv2.imshow(‘win‘,img1)
26     cv2.imshow(‘image‘,img)
27     if cv2.waitKey(20)&0xFF==27:
28         break
29     r=cv2.getTrackbarPos(‘R‘,‘image‘)
30     g=cv2.getTrackbarPos(‘G‘,‘image‘)
31     b=cv2.getTrackbarPos(‘B‘,‘image‘)
32     img[:]=[b,g,r]
33 cv2.destroyAllWindows()

时间: 2024-08-06 03:45:19

opencv for python的相关文章

OpenCV之Python学习笔记

OpenCV之Python学习笔记 直都在用Python+OpenCV做一些算法的原型.本来想留下发布一些文章的,可是整理一下就有点无奈了,都是写零散不成系统的小片段.现在看 到一本国外的新书<OpenCV Computer Vision with Python>,于是就看一遍,顺便把自己掌握的东西整合一下,写成学习笔记了.更需要的朋友参考. 阅读须知: 本文不是纯粹的译文,只是比较贴近原文的笔记:         请设法购买到出版社出版的书,支持正版. 从书名就能看出来本书是介绍在Pytho

Ubuntu16.04安装opencv for python/c++

Ubuntu16.04安装opencv for python/c++ 网上关于opencv的安装已经有了不少资料,但是没有一篇资料能让我一次性安装成功,因此花费了大量时间去解决各种意外,希望这篇能给一些人带去便利,节省时间. 1.安装OpenCV所需的库 1 sudo apt-get install build-essential 2 sudo apt-get install cmake git libgtk2.0-dev pkg-config libavcodec-dev libavforma

OpenCV for Python 学习笔记 三

给源图像增加边界 cv2.copyMakeBorder(src,top, bottom, left, right ,borderType,value) src:源图像 top,bottem,left,right: 分别表示四个方向上边界的长度 borderType: 边界的类型 有以下几种: BORDER_REFLICATE # 直接用边界的颜色填充, aaaaaa | abcdefg | gggg BORDER_REFLECT # 倒映,abcdefg | gfedcbamn | nmabcd

OpenCV for Python 学习 (二 事件与回调函数)

今天主要看了OpenCV中的事件以及回调函数,这么说可能不准确,主要是下面这两个函数(OpenCV中还有很多这些函数,可以在 http://docs.opencv.org/trunk/modules/highgui/doc/user_interface.html 找到,就不一一列举了),然后自己做了一个简单的绘图程序 函数如下: cv2.setMouseCallback(windowName, onMouse[, param]) cv2.createTrackbar(trackbarName,

OpenCV for Python 学习 (一 绘图函数)

本人的学习笔记主要记录的是学习opencv-python-tutorials这本书中的笔记 今天晚上简单学习OpenCV for Python如何绘图,主要用了这几个函数(这几个函数可在:http://docs.opencv.org/modules/core/doc/drawing_functions.html 找到): cv2.line(img, pt1, pt2, color[, thickness[, lineType[, shift]]]) cv2.circle(img, center,

Windows7 32位下配置opencv的python环境

刚接触Python和OpenCV,对两者都不太了解,因为今后学习会使用到这两种工具,特此学习配置.PS:本帖适用小白. 一. 需要的文件 1. OpenCV 可用OpenCV-2.3.1-win-superpack.exe自解压文件,直接运行,默认安装到opencv文件夹里. 下载链接:http://opencv.org/downloads.html(官方网址) http://pan.baidu.com/s/1eQgplEq(自留备份) 2. Python 下载链接:https://www.py

CentOS7配置opencv for python &amp;&amp; eclipse c/c++

1, 卸载安装过程中有瑕疵的 opencv    删除/usr/local/lib 和/usr/local/include/中的所有带 opencv 字眼的    # rm -rf /usr/local/lib/libopencv*    # rm -rf /usr/local/include/opencv*    之后重新编译 2, 安装 ffmpeg    安装 ffmpeg,直接 yum 显示没有 ffmpeg 软件包(因为与 centos7 相应的 epel, rpmforge 包正式版

win 下 安装opencv for python

在安装之前,先了解的事情 1.自己win系统是32还是64(不赘述) 2.安装的python的版本 以我的为例: 好了 接下来可以去网站下载对应的opencv,地址是 https://pypi.python.org/pypi/opencv-python#downloads 下载完毕之后执行 如果顺利的话会看到 检查是否成功 以上

【mac osx安装opencv,python总结】

在macosx下安装opencv,最大的困难在于协调python版本.由于在opencv官网上,强烈建议安装完整版的python(不建议使用mac 内置的python),所以会碰到这个多个python版本,导致opencv安装失败 1. 安装brew 2. 安装python(直接在官网下载安装包)点击.dmg文件,安装python. 在应用程序列表中会添加IDEL.pythonLauncher.buildapplet三个应用. 同时,系统默认的python被替换为新版本,新版本安装路径 /Lib