OpenCV学习笔记 - task01

内容导航:

  • 图像读取与显示
    • 图像理解:
    • 图像读取与显示:
    • 代码练习与测试:
  • 参考文章:


图像读取与显示


图像理解:

  • 灰度图 - 单通道
  • 彩色图 - 三通道

图像读取与显示:

导包:

# 导入opencv支持
import cv2 as cv 
  • 加载图像的通道顺序

详细函数与参数:

  • imread 函数, 读取图像
cv.imread(filename[, flags]) 

# 参数: 
# filename 表示文件路径
# [] 内的参数表示是可省略的, 根据自己的需求选择是否填写, 后面不再说明
# 参数flags是一个可选参数,默认值为 "IMREAD_COLOR" 其枚举值(可设置值)的具体意义如下:

OpenCV学习笔记 - task01_第1张图片
具体的枚举值如下:

enum  	cv::ImreadModes {
  cv::IMREAD_UNCHANGED = -1,
  cv::IMREAD_GRAYSCALE = 0,
  cv::IMREAD_COLOR = 1, # 默认
  cv::IMREAD_ANYDEPTH = 2,
  cv::IMREAD_ANYCOLOR = 4,
  cv::IMREAD_LOAD_GDAL = 8,
  cv::IMREAD_REDUCED_GRAYSCALE_2 = 16,
  cv::IMREAD_REDUCED_COLOR_2 = 17,
  cv::IMREAD_REDUCED_GRAYSCALE_4 = 32,
  cv::IMREAD_REDUCED_COLOR_4 = 33,
  cv::IMREAD_REDUCED_GRAYSCALE_8 = 64,
  cv::IMREAD_REDUCED_COLOR_8 = 65,
  cv::IMREAD_IGNORE_ORIENTATION = 128
}
  • imshow 函数, 显示图像
cv.imshow(winname, mat) 

# 参数: 
# winname 表示窗口标题, 注意不支持中文的窗口标题
# mat 表示图像对象

显示图像, 可能会一闪而过, 所以可以如下设置相关代码:

cv.waitKey(0) # 表示会一直等待, 直到任意一个键盘操作

cv.waitKey(1000) # 表示等待1000毫秒, 也就是1秒

代码练习与测试:

我目前项目文件框架如下:

OpenCV学习笔记 - task01_第2张图片

import cv2 as cv 
import numpy as np 


def show_image():
    image = cv.imread('data/lena.jpg')
    cv.imshow("lena", image)
    cv.waitKey(1000)
    cv.destroyAllWindows()


show_image()

图像显示如下:

OpenCV学习笔记 - task01_第3张图片

给个小拓展, 之前遇到的坑:

注意下imread操作图像和用plt操作图像, 通道顺序是不一致的. 如果你遇到好好的图像, 显示的时候突然变青了, 那就是两者的通道顺序不一致导致的.

imread读取的通道顺序是BGR, plt操作的图像是RGB.

给你举个例子:

import cv2 as cv 
import numpy as np 
import matplotlib.pyplot as plt


image = cv.imread('data/lena.jpg')
plt.imshow(image)
plt.show()

OpenCV学习笔记 - task01_第4张图片

参考文章:

  • https://blog.csdn.net/kids_budong_c/article/details/123905881
  • https://blog.csdn.net/wenhao_ir/article/details/123074651
  • https://blog.csdn.net/jia20003

你可能感兴趣的:(#,Python学习系列,opencv,学习,python)