目录
一、提前准备
1、树莓派4B 及 64位系统
2、提前安装opencv库
3、保存任意一张照片
二、代码详解
1、读取图像使用 imread() 方法
# coding=utf-8
import cv2
# 读取图片,第二个参数0表示以灰度并以1/4大小模式读取
img = cv2.imread('/home/raspberry4B/Pictures/MD.jpg', 33)
# 显示原图
img2 = cv2.imread('/home/raspberry4B/Pictures/MD.jpg')
# 将图像转换为灰度图像并返回
img3 = cv2.imread('/home/raspberry4B/Pictures/MD.jpg',0)
# 读取彩色图像(BGR格式),而非RGB
img4 = cv2.imread('/home/raspberry4B/Pictures/MD.jpg', 1)
参数一:图片的绝对路径
参数二:
#不设置,默认为-1
IMREAD_UNCHANGED = -1, #如果设置,则返回的数据带有alpha通道(R,G,B,A 四个通道),否则没有alpha通道
IMREAD_GRAYSCALE = 0, #如果设置,则将图像转换为单通道灰度图像
IMREAD_COLOR = 1, #如果设置,则将图像转换成3通道BGR彩色图像
IMREAD_ANYDEPTH = 2, #如果设置,则在输入具有相应深度时返回16位/32位图像,否则将其转换为8位
IMREAD_ANYCOLOR = 4, #如果设置,则图像可能以任何颜色格式读取
IMREAD_LOAD_GDAL = 8, #如果设置,使用gdal驱动程序加载图像
IMREAD_REDUCED_GRAYSCALE_2 = 16, #如果设置,总是将图像转换为单通道灰度图像且图像大小减少1/2
IMREAD_REDUCED_COLOR_2 = 17, #如果设置,总是将图像转换为3通道BGR彩色图像且图像大小减少1/2
IMREAD_REDUCED_GRAYSCALE_4 = 32, #如果设置,总是将图像转换为单通道灰度图像且图像大小减少1/4
IMREAD_REDUCED_COLOR_4 = 33, #如果设置,总是将图像转换为3通道BGR彩色图像且图像大小减少1/4
IMREAD_REDUCED_GRAYSCALE_8 = 64, #如果设置,总是将图像转换为单通道灰度图像且图像大小减少1/8
IMREAD_REDUCED_COLOR_8 = 65, #如果设置,总是将图像转换为3通道BGR彩色图像且图像大小减少1/8
IMREAD_IGNORE_ORIENTATION = 128 #如果设置,不会根据EXIF的方向标志旋转图像
2、显示图像使用 imshow()方法
# 如果图片img读取成功,则显示图片
if img is not None:
cv2.imshow('image', img)
cv2.imshow('image2', img2)
cv2.imshow('image3', img3)
cv2.imshow('image4', img4)
3、销毁窗口
# 等待任意按键按下
key = cv2.waitKey(0)
# 如果按下的是'q'键,则退出程序
if key & 0xFF == ord('q'):
cv2.destroyAllWindows()
else:
print("Load_Failed...")
# 无论是否按下'q'键,都需要在程序结束前销毁窗口
# 但由于我们在上面的if块中已经销毁了窗口(如果按下'q'),这里不需要再次销毁
# 如果上面的if块没有执行(即图片未加载),则这里也不需要销毁窗口,因为没有窗口被创建
三、运行现象
四、完整代码
# coding=utf-8
import cv2
# 读取图片,第二个参数0表示以灰度并以1/4大小模式读取
img = cv2.imread('/home/raspberry4B/Pictures/MD.jpg', 33)
# 显示原图
img2 = cv2.imread('/home/raspberry4B/Pictures/MD.jpg')
# 将图像转换为灰度图像并返回
img3 = cv2.imread('/home/raspberry4B/Pictures/MD.jpg',0)
# 读取彩色图像(BGR格式),而非RGB
img4 = cv2.imread('/home/raspberry4B/Pictures/MD.jpg', 1)
# 如果图片img读取成功,则显示图片
if img is not None:
cv2.imshow('image', img)
cv2.imshow('image2', img2)
cv2.imshow('image3', img3)
cv2.imshow('image4', img4)
# 等待任意按键按下
key = cv2.waitKey(0)
# 如果按下的是'q'键,则退出程序
if key & 0xFF == ord('q'):
cv2.destroyAllWindows()
else:
print("Load_Failed...")
# 无论是否按下'q'键,都需要在程序结束前销毁窗口
# 但由于我们在上面的if块中已经销毁了窗口(如果按下'q'),这里不需要再次销毁
# 如果上面的if块没有执行(即图片未加载),则这里也不需要销毁窗口,因为没有窗口被创建
五、完整工程贴出
https://download.csdn.net/download/2301_80015907/89700423
持续更新中……