目录

  • 1 OpenCV入门
    • 1.1 如何使用
    • 1.2 图像读入、显示与保存
  • 2 图像处理基础
    • 2.1 图像处理入门基础
    • 2.2 像素处理
    • 2.3 numpy访问像素
    • 2.4 获取图像属性
    • 2.5 感兴趣区域ROI
    • 2.6 通道操作
  • 3 图像运算
    • 3.1 图像加法
    • 3.2 图像融合
    • 3.3 位平面分解
    • 3.4 图像加密和解密
    • 3.5 数字水印
  • 4 色彩空间类型转换
    • 4.1 色彩类型转换
  • 5 几何变换
    • 5.1 图像缩放
    • 5.2 图像翻转
  • 6 阈值处理
    • 6.1 阈值理论知识
    • 6.2 阈值处理实践
  • 7 图像平滑处理
    • 7.1 均值滤波
    • 7.2 方框滤波
    • 7.3 高斯滤波
    • 7.4 中值滤波
  • 8 形态学操作
    • 8.1 图像腐蚀
    • 8.2 图像膨胀
    • 8.3 开运算
    • 8.4 闭运算
    • 8.5 梯度运算
    • 8.6 礼帽操作
    • 8.7 黑帽图像处理
  • 9 图像梯度
    • 9.1 Sobel理论基础
    • 9.2 Sobel算子及函数使用
    • 9.3 Scharr算子及函数使用
    • 9.4 Sobel算子和Scharr算子的比较
    • 9.5 Laplacian算子及函数使用
  • 10 canny边缘检测
    • 10.1 Canny边缘检测原理
    • 10.2 Canny函数及使用
  • 11 图像金字塔
    • 11.1 理论基础
    • 11.2 pyrDown函数及使用
    • 11.3 pyrUp函数及使用
    • 11.4 采样可逆性的研究
    • 11.5 拉普拉斯金字塔
  • 12 图像轮廓
    • 12.1 图像轮廓操作
  • 13 直方图
    • 13.1 直方图的概念
    • 13.2 绘制直方图
    • 13.3 使用OpenCV统计直方图
    • 13.4 绘制OpenCV统计直方图
    • 13.5 使用掩膜的直方图
    • 13.6 掩膜原理及演示
    • 13.7 直方图均衡化原理
    • 13.8 直方图均衡化函数equalizeHist
    • 13.9 subplot函数的使用
    • 13.10 matplotlib.pyplot.imshow函数的使用
    • 13.11 直方图均衡化对比
  • 14 傅里叶变换
    • 14.1 傅里叶变换的理论基础
    • 14.2 numpy实现傅里叶变换
    • 14.3 numpy实现逆傅里叶变换
    • 14.4 高通滤波演示
    • 14.5 OpenCV实现傅里叶变换
    • 14.6 OpenCV实现逆傅里叶变换
    • 14.7 低通滤波示例
图像读入、显示与保存

一、 图像处理基本操作

1. 读入图像

retval = cv2.imread(文件名[,显示控制参数])

常用显示控制参数

含义

数值

cv.IMREAD_UNCHANGED

保持原格式不变

-1

cv.IMREAD_GRAYSCALE

将图像调整为单通道的灰度图像

0

cv.IMREAD_COLOR

将图像调整为3通道的BGR图像。该值是默认值

1

示例:

#1.1 使用CV2.imread函数读取一副图像
import cv2
lena=cv2.imread("tz.jpg",-1)#图像放在工程目录中

i=cv2.imread("C:\\Users\\mac\\Desktop\\tz.jpg")
print(lena)

1. 显示图像

namedWindow函数

None = cv2.namedWindow(winname)示例:

Cv2. namedWindow(lesson)#创建一个名为lesson的窗口

Imshow函数

None = cv2.imshow(窗口名,图像名)cv2.imshow(“demo”,image)#1.2在一个窗口内显示读取的图像
import cv2
tz=cv2.imread("tz.jpg")
cv2.namedWindow("tanzhong")
cv2.imshow("tanzhong",tz)
 cv2.waitKey()#不加此句会出现闪退

waitKey函数

retval = cv2.waitKey([, delay]) delay

delay>0  等待delay毫秒delay<0  等待键盘单击delay=0  无限等待 

示例: cv2.waitKey(0)

#1.3一个窗口内显示图像,并针对按下的不同按键做出不同的反应。
import cv2
a=cv2.imread("tz.jpg")
cv2.imshow("demo",a)
key=cv2.waitKey()
if key==ord('A'):
    cv2.imshow("PressA",a)
    cv2.waitKey()
if key==ord('B'):
    cv2.imshow("PressB",a)
    cv2.waitKey()

1.4在一个窗口内显示图像用函数cv2.waitKey()实现程序暂停,在按下键盘的按键后让程序继续运行。
import cv2
a=cv2.imread("tz.jpg")
cv2.imshow("demo",a)
key=cv2.waitKey()
if key!=-1:
    print("触发了按键")

 destoryWindow函数

功能:释放指定窗口

语法格式:None=cv2.destroyWindow("demo")

#1.5编写一个程序演示如何使用cv2.destroyWindow()函数释放窗口
import cv2
a=cv2.imread("tz.jpg")
cv2.imshow("demo",a)
cv2.waitKey()
cv2.destroyWindow("demo")

 destoryAllWindow函数

语法格式:None=cv2.destroyAllWindows()

#1.6编写一个程序演示如何使用函数cv2.destroyAllWindows()释放所有窗口
import cv2
a=cv2.imread("tz.jpg")
cv2.imshow("demo1",a)
cv2.imshow("demo2",a)
cv2.waitKey()
cv2.destroyAllWindows()

 2. 保存图像

retval=cv2.imwrite(文件地址,文件名)示例:

cv2.imwrite(‘D:\\test.jpg',img) 

#1.7编写一个程序将读取的图像保存在当前目录下
import cv2
a=cv2.imread("tz.jpg")
cv2.imwrite("yzj.bmp",a)

 综合项目:图像读入、显示与保存

import cv2
i=cv2.imread("C:\\Users\\mac\\Desktop\\tz.jpg")
cv2.imshow("demo",i)
cv2.waitKey(0)
cv2.destroyAllWindows()
cv2.imwrite("C:\\Users\\mac\\Desktop\\tz111.jpg",i)