怎样读入一幅图像,怎样显示一幅图像,以及如何保存一幅图像
cv2.imread()
读入图像 cv2.imread(parament1,parament2)
parament1:要读入图像得路径,图片在路径内可提供图片名,不在必须提供完整路径
parament2:读取这幅图片方式,取值范围-1~4,默认为1(彩色图像);0灰度图像;-1读入一幅图像,并且包括图像的 alpha 通道
cv2.imshow()
显示图像窗口会自动调整为图像大小。第一个参数是窗口的名字,第二个是要显示得图像。可以创建多个窗口,但是必须不同的名字。 仅此函数创建得窗口大小不可变
在显示前可以加入
cv2.namedWindow(‘image’, cv2.WINDOW_NORMAL)
窗口大小可以改变
cv2.waitKey()
cv2.waitKey() 是一个键盘绑定函数。需要指出的是它的时间尺度是毫秒级。函数等待特定的几毫秒,看是否有键盘输入。特定的几毫秒之内,如果按下任意键,这个函数会返回按键的 ASCII 码值,程序将会继续运行。如果没有键盘输入,返回值为 -1,如果我们设置这个函数的参数为 0,那它将会无限期的等待键盘输入。它也可以被用来检测特定键是否被按下,例如按键 a 是否被按下。
cv2.destroyAllWindows()
cv2.destroyAllWindows() 可以轻易删除任何我们建立的窗口。如果你想删除特定的窗口可以使用 cv2.destroyWindow(),在括号内输入你想删除的窗口名
cv2.imwrite()
保存图像
cv2.imwrite(‘messigray.png’,img)
第一个参数:要保存图像得地址及图像名称,前不加地址则保存在工程路径下。路径不要有中文。
第二个参数:要保存得图像
# -*- coding: utf-8 -*- #注释中文文字
import numpy as np
import cv2
# 读取图片
img = cv2.imread('learn_image.jpg',cv2.IMREAD_GRAYSCALE)#灰度读取图像
# 以窗口显示图片
cv2.namedWindow('image', cv2.WINDOW_NORMAL)
cv2.imshow('image',img)
#键盘绑定
KeyInput = cv2.waitKey(0)
if KeyInput == ord('e'):
cv2.destroyAllWindows()#关闭所有窗口
if KeyInput == ord('s'):
cv2.imwrite('E:\learnOpenCV\save_file\saved_image1.jpg',img)#保存文件
cv2.destroyAllWindows()#关闭所有窗口
该代码用到了上面所以函数,运行代码将先以灰度图读入图片,并以窗口显示,按键盘e键退出,按键盘s键,在指定路径下保存灰度图片。
绘图函数
画线
cv2.line(img,(0,0),(511,511),(255,0,0),5)
img 要画的图;(0,0)线得顶点1; (511,511)线得顶点2 ;(255,0,0)线得颜色 ;5 线得粗细
画矩形
cv2.rectangle(img,(384,0),(510,128),(0,255,0),3)
img 要画的图;(384,0)矩形左上角点; (510,128)矩形右下角点 ;(0,255,0)线得颜色 ;3 线得粗细
画圆
cv2.circle(img,(447,63), 63, (0,0,255), -1)
img 要画的图;(447,63)中心点坐标; 63半径; (0,0,255)线得颜色; -1粗细(全填充)
写文字
font=cv2.FONT_HERSHEY_SIMPLEX
cv2.putText(img,‘OpenCV’,(10,500), font,2,(255,255,255),1)
img 要画的图;,'OpenCV’要写得字只能英文;(10,500)你要绘制的位置;font字体类型;2字体的大小;(255,255,255)颜色;1粗细
执行下面代码,画图并保存图片
# -*- coding: utf-8 -*- #注释中文文字
import numpy as np
import cv2
# 读取图片
img = cv2.imread('learn_image.jpg',cv2.IMREAD_COLOR)#读取图像 彩色
#绘图
cv2.line(img,(0,0),(511,511),(255,0,0),5) #画线
cv2.rectangle(img,(384,0),(510,128),(0,255,0),3)#画矩形
cv2.circle(img,(447,63), 63, (0,0,255),4)#画圆
#写字
font=cv2.FONT_HERSHEY_SIMPLEX
cv2.putText(img,'OpenCV',(10,500), font,2,(255,255,255),1)
# 以窗口显示图片
cv2.namedWindow('image', cv2.WINDOW_NORMAL)
cv2.imshow('image',img)
#键盘绑定
KeyInput = cv2.waitKey(0)
if KeyInput == ord('e'):
cv2.destroyAllWindows()#关闭所有窗口
if KeyInput == ord('s'):
cv2.imwrite('E:\learnOpenCV\save_file\saved_image1.jpg',img)#保存文件
# cv2.destroyAllWindows()#关闭所有窗口
KeyInput = cv2.waitKey(0)
读图像像素
px=img[100,100]
px变量为图片像素100,100位置得BGR
可以获取图像的形状
img.shape 可以获取图像的形状。他的返回值是一个包含行数,列数,通道数的元组。
print (img.shape)
##(720L, 1280L, 3L)
图像的像素大小
img.size可以返回图像的像素大小
print img.size
##2764800
图像的数据类型
img.dtype 返回的是图像的数据类型
print img.dtype
##uint8
- 点赞
- 收藏
- 关注作者
评论(0)