opencv for python
opencv显示图像:
- # -*- coding: UTF-8 -*-
- import numpy as np
- import cv2
- from matplotlib import pyplot as plt
- img=cv2.imread("cat.png",5) #载入
- cv2.imshow('image',img) #显示
- k=cv2.waitKey(0)&0xFF #读取键盘输入,参数为在x毫秒内读取,x=0是无限等待读取
- while(k!=27 and k!=ord('s')):
- k=cv2.waitKey(0)&0xFF
- if k==27:
- cv2.destroyAllWindows()
- elif k==ord('s'):
- cv2.imwrite('mess.png',img)
- cv2.destroyAllWindows() #关闭窗口,参数可以为窗口名
opencv载入图像,matplotlib显示:
- # -*- coding: UTF-8 -*-
- import numpy as np
- import cv2
- from matplotlib import pyplot as plt
- img=cv2.imread('cat.png')
- plt.imshow(img)
- plt.show()
注:彩色图像使用OpenCV 加载时是BGR 模式。但是Matplotib 是RGB模式。所以彩色图像如果已经被OpenCV 读取,那它将不会被Matplotib 正确显示。
简单画图:
- # -*- coding: UTF-8 -*-
- import numpy as np
- import cv2
- from matplotlib import pyplot as plt
- cv2.namedWindow('hello')
- img=np.zeros((512,512,3),np.uint8) #创建一张空图片
- cv2.line(img,(60,90),(511,511),(255,0,0),6);
- cv2.rectangle(img,(100,70),(300,300),(100,100,100),5)
- cv2.circle(img,(200,200),60,(0,250,0),2)
- font=cv2.FONT_HERSHEY_SIMPLEX
- cv2.putText(img,'opencv',(60,400),font,4,(25,25,90),2)
- cv2.imshow('hello',img)
- cv2.waitKey(0)
- cv2.destroyAllWindows()
鼠标事件:
- # -*- coding: UTF-8 -*-
- import numpy as np
- import cv2
- from matplotlib import pyplot as plt
- #鼠标事件回调函数 函数参数统一如此
- def draw_rectangle(event,x,y,flags,param):
- if event==cv2.EVENT_LBUTTONDBLCLK:
- cv2.rectangle(img,(x,y),(x+30,y+30),(250,20,20),5)
- img=np.zeros((512,512,3),np.uint8)
- cv2.namedWindow('hello')
- cv2.setMouseCallback('hello',draw_rectangle)
- while 1:
- cv2.imshow('hello',img)
- if cv2.waitKey(20)&0xFF==27:
- break;
- cv2.destroyAllWindows()
滑动条:
- # -*- coding: utf-8 -*-
- """
- Created on Sun Jan 5 13:51:34 2014
- @author: duan
- """
- import cv2
- import numpy as np
- def nothing(x): #滑动条的位置,通常默认为pass
- pass
- # 创建一副黑色图像
- img=np.zeros((250,512,3),np.uint8)
- cv2.namedWindow('image')
- cv2.createTrackbar('R','image',0,255,nothing) #创建滑动条 ,滑动条名称,显示窗口名称,范围,回调函数
- cv2.createTrackbar('G','image',0,255,nothing)
- cv2.createTrackbar('B','image',0,255,nothing)
- switch='0:OFF\n1:ON'
- cv2.createTrackbar(switch,'image',0,1,nothing)
- while(1):
- cv2.imshow('image',img)
- k=cv2.waitKey(20)&0xFF
- if k==27:
- break
- r=cv2.getTrackbarPos('R','image')
- g=cv2.getTrackbarPos('G','image')
- b=cv2.getTrackbarPos('B','image')
- s=cv2.getTrackbarPos(switch,'image')
- if s==0:
- img[:]=100
- else:
- img[:]=[b,g,r]
- cv2.destroyAllWindows()
利用滑动条改变颜色画圆:
- # -*- coding: utf-8 -*-
- import cv2
- import numpy as np
- r,b,g=0,0,0
- def nothing(x): #滑动条的位置,通常默认为pass
- pass
- def draw_circle(event,x,y,flags,param):
- if event==cv2.EVENT_LBUTTONDBLCLK:
- cv2.circle(img1,(x,y),10,(b,g,r),-1)
- # 创建一副黑色图像
- img=np.zeros((250,512,3),np.uint8)
- img1=np.zeros((250,512,3),np.uint8)
- cv2.namedWindow('image')
- cv2.namedWindow('win')
- cv2.createTrackbar('R','image',0,255,nothing) #创建滑动条 ,滑动条名称,显示窗口名称,范围,回调函数
- cv2.createTrackbar('G','image',0,255,nothing)
- cv2.createTrackbar('B','image',0,255,nothing)
- cv2.setMouseCallback('win',draw_circle)
- while(1):
- cv2.imshow('win',img1)
- cv2.imshow('image',img)
- if cv2.waitKey(20)&0xFF==27:
- break
- r=cv2.getTrackbarPos('R','image')
- g=cv2.getTrackbarPos('G','image')
- b=cv2.getTrackbarPos('B','image')
- img[:]=[b,g,r]
- cv2.destroyAllWindows()
opencv for python的更多相关文章
- (原)windows8.1上使用opencv for python
转载请注明出处: http://www.cnblogs.com/darkknightzh/p/6204100.html 参考网址: http://www.docs.opencv.org/master/ ...
- OpenCV之Python学习笔记
OpenCV之Python学习笔记 直都在用Python+OpenCV做一些算法的原型.本来想留下发布一些文章的,可是整理一下就有点无奈了,都是写零散不成系统的小片段.现在看 到一本国外的新书< ...
- Ubuntu16.04安装opencv for python/c++
Ubuntu16.04安装opencv for python/c++ 网上关于opencv的安装已经有了不少资料,但是没有一篇资料能让我一次性安装成功,因此花费了大量时间去解决各种意外,希望这篇能给一 ...
- [PyImageSearch] Ubuntu16.04 使用OpenCV和python识别信用卡 OCR
在今天的博文中,我将演示如何使用模板匹配作为OCR的一种形式来帮助我们创建一个自动识别信用卡并从图像中提取相关信用卡数位的解决方案. 今天的博文分为三部分. 在第一部分中,我们将讨论OCR-A字体,这 ...
- 深度学习 + OpenCV,Python实现实时视频目标检测
使用 OpenCV 和 Python 对实时视频流进行深度学习目标检测是非常简单的,我们只需要组合一些合适的代码,接入实时视频,随后加入原有的目标检测功能. 在本文中我们将学习如何扩展原有的目标检测项 ...
- day1 Opencv安装 python 2.7 (32位)
[参考安装步骤] http://opencv-python-tutroals.readthedocs.io/en/latest/index.html http://blog.csdn.net/huru ...
- OpenCV for Python 学习笔记 一
本人的学习笔记主要记录的是学习opencv-python-tutorials这本书中的笔记 今天晚上简单学习OpenCV for Python如何绘图,主要用了这几个函数(这几个函数可在:http:/ ...
- CentOS7配置opencv for python && eclipse c/c++[更新]
更改前的安装过程有些问题,主要是ffmpeg-devel的安装部分,这里重新说一下 两种安装方法: 第一种,直接: # yum install numpy opencv* 这种方法安装了之后,能够在p ...
- OpenCV的Python接口
Python教程系列:http://blog.csdn.net/sunny2038/article/details/9057415 与C++的不同之处:http://developer.51cto.c ...
- OpenCv的python环境搭建
1.python的安装参看 http://www.cnblogs.com/samo/p/6734403.html 2.OpenCv安装.opencv2.4.10可以支持vc10/vc11/vc12,o ...
随机推荐
- CoreData (三)备
NSFetchedResultsController 什么是NSFetchedResultsController NSFetchedResultsController是一个让人爱恨交加的一个类.如果使 ...
- 在Fragment中使用BaiduMap SDK
1:fragment_bshdzh.xml <?xml version="1.0" encoding="utf-8"?> <LinearLay ...
- 解决Sqlite UTF-8中文数据格式在DOS窗口下中文乱码
问题如下图所示: 右键查看DOS属性:点击选项->当前代码页为GBK 只要将当前代码页编码值设置为UTF-8就可以了: ‘退出sqlite:.exit 输入:chcp 65001回车 右键属性: ...
- layout_weight
最近写Demo,突然发现了Layout_weight这个属性,发现网上有很多关于这个属性的有意思的讨论,可是找了好多资料都没有找到一个能够说的清楚的,于是自己结合网上资料研究了一下,终于迎刃而解,写出 ...
- 《Programming WPF》翻译 第6章 4.应用程序全球化
原文:<Programming WPF>翻译 第6章 4.应用程序全球化 如果你打算发布你的应用程序到全球各地,你可能需要为不同地区的用户界面准备不同的版本.至少,这需要解决将文本翻译成适 ...
- 福建省队集训被虐记——DAY4
啊啊啊啊啊啊第四天考的是我最不擅长的图论--整个人都斯巴达了 //另外不得不吐槽下午的上课讲的都是网络流--难道是出题人觉得图论里除了网络流以外的其他算法都没有人权图样图森破? 愚蠢的算法(clums ...
- C++指针初始化总结
1.字符指针的初始化 在c语言中 "string"保存的就是首个字符所在的地址 所以可以把 字符串常量"string" 赋值给指针 char *p; &qu ...
- UESTC_方老师和农场 2015 UESTC Training for Graph Theory<Problem L>
L - 方老师和农场 Time Limit: 3000/1000MS (Java/Others) Memory Limit: 65535/65535KB (Java/Others) Submi ...
- 【转】ffmpeg中的sws_scale算法性能测试
经常用到ffmpeg中的sws_scale来进行图像缩放和格式转换,该函数可以使用各种不同算法来对图像进行处理.以前一直很懒,懒得测试和甄别应该使用哪种算法,最近的工作时间,很多时候需要等待别人.忙里 ...
- poj 3685 Matrix(二分搜索之查找第k大的值)
Description Given a N × N matrix A, whose element × i + j2 - × j + i × j, you are to find the M-th s ...