越来越觉得python是一强大的工具,处理样本确实不错。最近因项目需要涉及到图片处理,所以开始用python调用opencv,再次觉得python真乃神器也!
一、主要函数1、 cv2.imread():读入图片,共两个参数,第一个参数为要读入的图片文件名,第二个参数为如何读取图片,包括cv2.IMREAD_COLOR:读入一副彩色图片;cv2.IMREAD_GRAYSCALE:以灰度模式读入图片;cv2.IMREAD_UNCHANGED:读入一幅图片,并包括其alpha通道。
2、cv2.imshow():创建一个窗口显示图片,共两个参数,第一个参数表示窗口名字,可以创建多个窗口中,但是每个窗口不能重名;第二个参数是读入的图片。
3、cv2.waitKey():键盘绑定函数,共一个参数,表示等待毫秒数,将等待特定的几毫秒,看键盘是否有输入,返回值为ASCII值。如果其参数为0,则表示无限期的等待键盘输入。
4、cv2.destroyAllWindows():删除建立的全部窗口。
5、cv2.destroyWindows():删除指定的窗口。
6、cv2.imwrite():保存图片,共两个参数,第一个为保存文件名,第二个为读入图片。
Python-OpenCV 处理图像基本 *** 作 0x00. 图片读、写和显示 *** 作安装好 OpenCV 之后,首先尝试加载一张最简单的图片并显示出来,代码示例:
第一种方式使用cv2.cv的LoadImage、ShowImage和SaveImage函数
import cv2.cv as cv
# 读图片
image=cv.LoadImage(‘img/image.png’, cv.CV_LOAD_IMAGE_COLOR)#Load the image
#Or just: image=cv.LoadImage(‘img/image.png’)
cv.NamedWindow(‘a_window’, cv.CV_WINDOW_AUTOSIZE) #FacultaTIve
cv.ShowImage(‘a_window’, image) #Show the image
# 写图片
cv.SaveImage(“thumb.png”, thumb)
cv.WaitKey(0) #Wait for user input and quit
也可以直接使用cv2的imread、imwrite和imshow函数
import numpy as np
import cv2
img = cv2.imread(‘messi5.jpg’,0)
cv2.imshow(‘image’,img)
k = cv2.waitKey(0)
if k == 27: # wait for ESC key to exit
cv2.destroyAllWindows()
elif k == ord(‘s’): # wait for ‘s’ key to save and exit
cv2.imwrite(‘messigray.png’,img)
cv2.destroyAllWindows()
imread函数还可以定义加载的mode,默认是以RGB模式处理图片:
import cv2
grayImage = cv2.imread(‘MyPic.png’, cv2.CV_LOAD_IMAGE_GRAYSCALE)
# 可选参数CV_LOAD_IMAGE_COLOR (BGR), CV_LOAD_IMAGE_GRAYSCALE (grayscale), CV_LOAD_IMAGE_UNCHANGED(neither)
cv2.imwrite(‘MyPicGray.png’, grayImage)
0x01. 获取图片属性import cv2
img = cv2.imread(‘img/image.png’)
print img.shape
# (640, 640, 3)
print img.size
# 1228800
print img.dtype
# uint8
# 在debug的时候,dtype很重要
0x02. 输出文本在处理图片的时候,我们经常会需要把一些信息直接以文字的形式输出在图片上,下面的代码将实现这个效果:
import cv2.cv as cv
image=cv.LoadImage(‘img/lena.jpg’, cv.CV_LOAD_IMAGE_COLOR) #Load the image
font = cv.InitFont(cv.CV_FONT_HERSHEY_SIMPLEX, 1, 1, 0, 3, 8) #Creates a font
y = image.height / 2 # y posiTIon of the text
x = image.width / 4 # x posiTIon of the text
cv.PutText(image,“Hello World !”, (x,y),font, cv.RGB(255, 255, 255)) #Draw the text
cv.ShowImage(‘Hello World’, image) #Show the image
cv.WaitKey(0)
cv2:
cv2.putText(frame, ‘Hello World’, (300,100), 0, 0.5, (0,0,255),2)
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)