怎样读入一幅图像,怎样显示一幅图像,以及如何保存一幅图像

cv2.imread()

读入图像 cv2.imread(parament1,parament2)

parament1:要读入图像得路径,图片在路径内可提供图片名,不在必须提供完整路径

parament2:读取这幅图片方式,取值范围-1~4,默认为1(彩色图像);0灰度图像;-1读入一幅图像,并且包括图像的 alpha 通道

opencv绘制小箭头 opencv 绘制图像到 指定 窗口_OpenCV

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)

opencv绘制小箭头 opencv 绘制图像到 指定 窗口_计算机视觉_02

读图像像素

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